Jquery 如何从数组中删除某个对象
我有一个数组,如下所示Jquery 如何从数组中删除某个对象,jquery,Jquery,我有一个数组,如下所示 var test = [ { "name": "Mike", "incentives": "23.45", "id": "1" }, { "name": "Larsen", "incentives": "34.78", "id": "2" }, { "name": "Steve", "incentives": "26.78", "id": "3" } ] var idtob
var test =
[
{
"name": "Mike",
"incentives": "23.45",
"id": "1"
},
{
"name": "Larsen",
"incentives": "34.78",
"id": "2"
},
{
"name": "Steve",
"incentives": "26.78",
"id": "3"
}
]
var idtoberemoved = 2
test = test.filter((obj) => typeof obj.id = '2');
我想移除某个对象
我已尝试如下所示
var test =
[
{
"name": "Mike",
"incentives": "23.45",
"id": "1"
},
{
"name": "Larsen",
"incentives": "34.78",
"id": "2"
},
{
"name": "Steve",
"incentives": "26.78",
"id": "3"
}
]
var idtoberemoved = 2
test = test.filter((obj) => typeof obj.id = '2');
typeof obj.id
将为您提供“字符串”
,您希望筛选出id
属性不等于“2”
的对象。所以,应该是这样
test.filter(obj => obj.id !== '2');
在JS中,
=
用于赋值,而不是相等性测试。我们使用==
,===
,==代码>,=代码>用于相等测试。=
和=
之间存在差异,但这是一个完整的主题。您可以在数组中找到元素的索引,并使用splice将其删除
var测试=[{
“姓名”:“迈克”,
“激励措施”:“23.45”,
“id”:“1”
},
{
“姓名”:“拉森”,
“激励措施”:“34.78”,
“id”:“2”
},
{
“姓名”:“史蒂夫”,
“激励措施”:“26.78”,
“id”:“3”
}
];
//使用接头拆下元件
测试接头(
//查找要删除的元素的索引
test.indexOf(test.find(函数(元素){return element.id==“2”}))
//从找到的索引中删除1个元素
1.
);
控制台日志(测试)代码>
var测试=[
{
“姓名”:“迈克”,
“激励措施”:“23.45”,
“id”:“1”
},
{
“姓名”:“拉森”,
“激励措施”:“34.78”,
“id”:“2”
},
{
“姓名”:“史蒂夫”,
“激励措施”:“26.78”,
“id”:“3”
}
];
var filtered=test.filter(函数(对象){
返回object.id!=2;
});
console.log(过滤)代码>如果您正在查找要删除的多个id,这里有一种使用reduce实现的方法。这与其他方法和答案没有太大区别,但却是完成提问的不同方式
var测试=[{
“姓名”:“迈克”,
“激励措施”:“23.45”,
“id”:“1”
},
{
“姓名”:“拉森”,
“激励措施”:“34.78”,
“id”:“2”
},
{
“姓名”:“史蒂夫”,
“激励措施”:“26.78”,
“id”:“3”
}
];
函数removietem(idList){
var结果=test.reduce(函数(输出,currentObject){
如果(!idList.includes(currentObject.id)){
push(currentObject);
}
返回输出;
}, []);
返回结果;
}
console.log(removietem([“2”,“3']))
它应该是test.filter((obj)=>obj.id==“2”)代码>一旦我执行这一行,数组长度将变为1,因为我只删除了一个元素,所以它必须是2。长度必须是1,但必须是2,因为我只从数组中删除了1个对象array@Pawan我不明白你的意思。让它test.filter(obj=>obj.id!=='2')代码>