<script>
var data=[{name:"qwe.jpg",age:12},{name:"sdf12.png",age:32},{name:"weqwe.jpg",age:12}];
for(var i=0;i<data.length;i++){
}
</script>
//删除data里name等于str的那条数据
for(var i=0; i<data.length; i++)
{
if(data[i].name == str)
data.splice(i, 1);
}
比如说:var data=[{name:"qwe.jpg",age:12},{name:"sdf12.png",age:32},{name:"sdf12.png",age:24},{name:"weqwe.jpg",age:12}];
我要删除所有name==sdf12.png的数据,这样处理就不行了,要么拼接,要么递归
splice会改变原数组,如果你确定数组里只会存在一个name==str;那么运用楼上的方法没错;
倘若你数组对象里有多个name==str;就会存在bug;比如说你紧接着的下一个name==str;此时数组变了,i增加;刚好错过这个比较;
1.此时建议你把索引也就是i记录下来;然后利用slice去做个拼接;因为slice不会改变原数组;
2.在一楼的基础上写个递归方法