我有一些数据:
data = [
{id: 1, cols: 1, rows: 1, y: 0, x: 0},
{id: 3, cols: 1, rows: 1, y: 0, x: 0},
{id: 6, cols: 1, rows: 1, y: 0, x: 0}
];
我要删除ID为6的项目。
所以我尝试了这个:
function remove(id) {
data.splice(data.indexOf(6), 0);
}
但是它不起作用。
如何修复此功能?
答案 0 :(得分:6)
您可以使用Array.filter
data = [
{id: 1, cols: 1, rows: 1, y: 0, x: 0},
{id: 3, cols: 1, rows: 1, y: 0, x: 0},
{id: 6, cols: 1, rows: 1, y: 0, x: 0}
];
function removeItem(arr, id){
return arr.filter(item => item.id !== id);
}
data = removeItem(data, 6);
console.log(data);
答案 1 :(得分:4)
您可以使用
function remove(id) {
data = data.filter(item => item.id !== id);
}
过滤器函数将返回所有不具有作为参数提供的ID的项目。
答案 2 :(得分:1)
您可以使用Array.findIndex
data = [
{id: 1, cols: 1, rows: 1, y: 0, x: 0},
{id: 3, cols: 1, rows: 1, y: 0, x: 0},
{id: 6, cols: 1, rows: 1, y: 0, x: 0}
];
function remove(id) {
data.splice(data.findIndex(d => d.id === id), 1);
// here 2nd arg is 1 instead of 0 or it removes nothing
}
remove(6)
console.log(data)