(2) [{…}, {…}]
0: {id: "201158", salary: 2}
1: {id: "1627761", salary: 5}
length:2
__proto__: Array(0)
上面是我从控制台的对象。我在这里画了一些空白。点击,我试图通过id的值删除元素。
例如,如果点击的div的ID为 201158 ,则会从此数组中删除ID和工资。我试过删除没有运气。我已经尝试迭代数组并用下面的方法点击它,但没有。
var id = $(this).attr('id').toString();
removeFunction(teamOneSalaries, "id", id);
function removeFunction (myObjects,prop,valu)
{
return myObjects.filter(function (val) {
return val[prop] !== valu;
});
}
关于我在这里做错了什么的想法?
答案 0 :(得分:2)
由于函数返回一个新的过滤数组,您需要将其分配回变量。即:
teamOneSalaries = removeFunction(teamOneSalaries,"id",id);
无论出于何种原因,如果您不想这样做并想要更新传递给该函数的数组,您将不得不直接从该数组中删除项目,而不是返回一个新项目。
e.g。
function removeFunction(myObjects, prop, valu) {
for (let i = myObjects.length - 1; i >= 0; i--) {
if (myObjects[i][prop] === valu)
myObjects.splice(i, 1);
}
}
答案 1 :(得分:0)
var myArray = [{id: "201158", salary: 2},{id: "1627761", salary: 5}];
myArray = myArray.filter(function( obj ) {
return obj.id !== '1627761';
});
console.log(myArray);
这个代码正常工作
var myArray = [{id: "201158", salary: 2},{id: "1627761", salary: 5}];
myArray = myArray.filter(function( obj ) {
return obj.id !== '1627761';
});
console.log(myArray);