var arr=[{'id':1,'name':1},{'id':2,name:2},{'id':3,'name':3}];
var obj = {'id':2,'name':2};
Comment comparer arr et obj ? Après avoir constaté que id2 est répété, supprimez l'objet tableau id:2 de arr et générez un nouveau tableau ?
Utilisez le filtre de tableau pour filtrer afin de générer un nouveau tableau.
De plus, la deuxième partie du tableau dans la question 'id:2'
contient une erreur grammaticale et les guillemets sont au mauvais endroit
var res = arr.filter(function(e){
return e.id!=obj.id
})
Ce qui suit est mon imagination?: et si le point clé de la question était que les paires clé-valeur soient répétées avant le filtrage... (je réfléchis peut-être trop)
Considérant que vous souhaiterez peut-être également vous assurer que les paires clé-valeur des éléments du tableau doivent être exactement les mêmes que les paires clé-valeur de l'obj?: vous pouvez considérer ceci
var arr=[{'id':1,'name':1},{id:2,name:3},{'id':3,'name':3}];
var arr2=[{'id':1,'name':1},{id:2,name:2},{'id':3,'name':3}];
var obj = {'id':2,'name':2};
var res = arr.filter(function(e){//
var result = true; //作為過濾標(biāo)識
for(var key in obj){//遍歷obj的鍵值
if(e[key]!=obj[key]){//如果出現(xiàn)鍵值相同當(dāng)值不同,就不算重復(fù)
result = true;
break;
}
//如果上面條件不通過,那就表示鍵值重復(fù)
result = false;
}//遍歷到最后,如果鍵值都重復(fù),那result肯定是false,否則必然出現(xiàn)result=true的情況
return result;
});
var res2 = arr.filter(function(e){
var result = true;
for(var key in obj){
if(e[key]!=obj[key]){
result = true;
break;
}
result = false;
}
return result;
});
var arr=[{'id':1,'name':1},{'id':2,name:2},{'id':3,'name':3}];
var obj = {'id':2,'name':2};
var index = -1;
for (let i = 0; i < arr.length; i++) {
let flag = false;
for (let item in obj) {
if (obj[item] !== arr[i][item]) {
flag = true;
}
}
if (!flag) {
index = i;
}
}
console.log(index);
arr.splice(index,index>0);
console.log(arr);
Array.prototype.filter()
var arr=[{'id':1,'name':1},{'id':2,name:2},{'id':3,'name':3}];
var obj = {'id':2,'name':2};
var newArray = arr.filter((obj_)=>(obj_.id !== obj.id))