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

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

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

瀏覽:144日期: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
主站蜘蛛池模板: 隆化县| 北流市| 蓬溪县| 瑞昌市| 广宁县| 衡东县| 隆回县| 信阳市| 商洛市| 读书| 岐山县| 唐海县| 安塞县| 高邮市| 道孚县| 海宁市| 什邡市| 福安市| 肇东市| 清河县| 乌兰察布市| 张北县| 马尔康县| 星子县| 巴东县| 平果县| 乌兰察布市| 阿坝县| 新营市| 长乐市| 新余市| 平安县| 永年县| 栖霞市| 奉节县| 云浮市| 汉源县| 益阳市| 鞍山市| 瑞安市| 遵义县|