删除Javascript中的子数组项
如何从JavaScript/jQuery中id=2的以下数组中删除整个子数组项删除Javascript中的子数组项,javascript,jquery,arrays,Javascript,Jquery,Arrays,如何从JavaScript/jQuery中id=2的以下数组中删除整个子数组项 arr = [{ "id": 1, "name": "Steve" },{ "id": 2, "name": "Martin" },{ "id": 3, "name": "Short" }] 我不知道在这种情况下如何使用grep或splice 我期望的结果是: newArr = [{ "id": 1, "name": "Steve" },{ "
arr = [{
"id": 1,
"name": "Steve"
},{
"id": 2,
"name": "Martin"
},{
"id": 3,
"name": "Short"
}]
我不知道在这种情况下如何使用grep或splice
我期望的结果是:
newArr = [{
"id": 1,
"name": "Steve"
},{
"id": 3,
"name": "Short"
}]
试着在这个上下文中使用
var arr = [ {"id":1,"name":"Steve"} , {"id":2,"name":"Martin"} , {"id":3,"name":"Short"} ];
var newArr = arr.filter(function(itm){
return itm.id !== 2;
});
您可以在数组上迭代,并在找到id时使用splice var arr=[{id:1,name:Steve},{id:2,name:Martin},{id:3,name:Short}];
对于var i=0;我为您的问题提供明确的解决方案:
var newArr = arr.filter(function(el) { return el.id!= 2; });
console.log(newArr);
我就是这样做的
var toRemove = "2";
var toKeep = [];
var arr = [ {"id":1,"name":"Steve"} , {"id":2,"name":"Martin"} , {"id":3,"name":"Short"} ];
var listOfItems = JSON.stringify(arr);
var splitItems = listOfItems.split('},');
for(var i = 0; i< splitItems.length; i++){
var details = splitItems[i].split(',');
if(details[0].split(':')[1] !== toRemove){
var people = {id:details[0].split(':')[1], name:details[1].split(':')[1].replace('}]', '')};
toKeep.push(people);
}
}
console.log(toKeep);
@Shanka很乐意帮忙