[英]How to delete an item from array of objects?
var arr = [
{id:2,date:'2010-10-03',des:'goodday'},
{id:3,date:'2011-02-13',des:'badday'},
{id:4,date:'2011-04-03',des:'niceday'}
];
Now I want to delete {id:3,date:'2011-02-13',des:'badday'}
, and then the arr should be 现在我要删除{id:3,date:'2011-02-13',des:'badday'}
,然后arr应该是
var arr = [
{id:2,date:'2010-10-03',des:'goodday'},
{id:4,date:'2011-04-03',des:'niceday'}
];
How should I do? 我应该怎么做?
Assume the id fields in you Objects are unique you can do the following to delete it. 假设您对象中的id字段是唯一的,您可以执行以下操作将其删除。 The function to use is Splice : 使用的功能是Splice :
var arr = [
{
id: 2,
date: '2010-10-03',
des: 'goodday'},
{
id: 3,
date: '2011-02-13',
des: 'badday'},
{
id: 4,
date: '2011-04-03',
des: 'niceday'}
];
for(var i=0; i<arr.length; i++){
if(arr[i].id == 3){
arr.splice(i, 1); //removes 1 element at position i
break;
}
}
console.log(arr);
//should give you
// var arr = [
// {id:2,date:'2010-10-03',des:'goodday'},
// {id:4,date:'2011-04-03',des:'niceday'}
// ];
You can use the filter method to achieve the same: 您可以使用filter方法实现相同的目的:
// Your array
var oArr = [
{id:2,date:'2010-10-03',des:'goodday'},
{id:3,date:'2011-02-13',des:'badday'},
{id:4,date:'2011-04-03',des:'niceday'}
];
// Array with the values to be removed, here I have taken the id
var oArrToRemove = [2]
// Using filter method to delete the object
var oNewArr = arr.filter(ele => { return remArr.indexOf(ele.id) === -1})
// The oNewArray will be as follows
oNewArr = [
{id:3,date:'2011-02-13',des:'badday'},
{id:4,date:'2011-04-03',des:'niceday'}
];
arr.splice(1,1);
will remove the object at arr[1]
, and arr[2]
will slide into its place. 将删除arr[1]
处的对象,并且arr[2]
将滑入其位置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.