国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

javascript - 一個是數組,一個是對象,怎么進行比較去重?

瀏覽:109日期:2023-03-11 14:20:32

問題描述

var arr=[{’id’:1,’name’:1},{’id’:2,name:2},{’id’:3,’name’:3}];var obj = {’id’:2,’name’:2};

請問這個arr 和obj怎么進行對比,發現重復id2后,去掉arr這個數組對象id:2,并生成一個新的數組?

問題解答

回答1:

用數組的filter過濾一下就生成新的數組了。另外,題目里的 數組第二個 ’id:2’語法錯誤,引號位置不對

var res = arr.filter(function(e){ return e.id!=obj.id})

下面是我的腦洞:萬一題主要的是鍵值對都重復才過濾呢……(有可能想多了)

考慮到可能你還想保證數組里面元素的鍵值對跟obj的鍵值對必須完全一樣的話:可以考慮這樣

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; //作為過濾標識 for(var key in obj){//遍歷obj的鍵值 if(e[key]!=obj[key]){//如果出現鍵值相同當值不同,就不算重復 result = true; break; } //如果上面條件不通過,那就表示鍵值重復 result = false; }//遍歷到最后,如果鍵值都重復,那result肯定是false,否則必然出現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;});回答2:

var newArr = arr.filter(item => item.id !== obj.id)回答3:

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);回答4:

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))

標簽: JavaScript
主站蜘蛛池模板: 铜川市| 建昌县| 建水县| 成安县| 于田县| 忻城县| 扎赉特旗| 玉溪市| 永年县| 贵德县| 阳城县| 蛟河市| 四子王旗| 交城县| 陇西县| 晋宁县| 肇州县| 温泉县| 大埔县| 兴安盟| 资阳市| 巨野县| 广东省| 花莲县| 吉水县| 广丰县| 南昌县| 和平县| 河南省| 靖远县| 临江市| 奎屯市| 普兰县| 临湘市| 沁源县| 分宜县| 都兰县| 萝北县| 金塔县| 荃湾区| 巴彦县|