这是我的阵列
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删除用户,但不知怎么不起作用。
如何在嵌套对象中搜索?
发布于 2014-09-10 19:03:49
您仍然可以在普通的JavaScript中这样做:
for (var i = 0; i < arr.length; i++)
{
if (arr[i].User.id == 768)
{
arr.splice(i, 1);
break;
}
}小提琴。
发布于 2014-09-10 19:05:22
使用ES5数组方法,
arr = arr.filter(function(item) {
return item.User.id !== 768;
});注意,它是简短而清晰的,但是传统的for循环更快。
发布于 2014-09-10 19:06:31
Javascript有一个很好的叫做map的数组方法,它可以映射对象数组的属性。因此,可以通过以下方法将数组的对象拼接到包含特定属性的选定索引上:
arr.splice(
arr.map(function(e) {
return e["User"]["id"];
}).indexOf(768)
,1
);请注意,这是从版本9开始的IE兼容性。
https://stackoverflow.com/questions/25773012
复制相似问题