这是我的数组,
arr = [
{
'User': {
'id':1058,
'name':'user67'
},
Source: {
'dom':'pl-4'
}
},
{
'User': {
'id':768,
'name':'user13'
},
Source: {
'dom':'pl-4'
}
}
];
我使用以下代码删除:
arr= _.without(arr, _.findWhere(arr, {id: 768}));
我想删除ID为768的用户,但它不知何故不起作用。
如何搜索嵌套对象?
答案 0 :(得分:4)
使用ES5数组方法,
arr = arr.filter(function(item) {
return item.User.id !== 768;
});
请注意它简短明了,但传统的for循环更快。
答案 1 :(得分:2)
您仍然可以使用纯JavaScript:
for (var i = 0; i < arr.length; i++)
{
if (arr[i].User.id == 768)
{
arr.splice(i, 1);
break;
}
}
答案 2 :(得分:1)
Javascript有一个很好的Array方法叫map
,可以映射对象数组的属性。因此,您可以通过此方法在包含特定属性的选定索引上拼接数组的对象:
arr.splice(
arr.map(function(e) {
return e["User"]["id"];
}).indexOf(768)
,1
);
MDN Array.prototype.map() docs
请注意,它的IE兼容性从版本9开始。
答案 3 :(得分:0)
您可以尝试以下
$ echo $(( 98 & 7 ))
2