久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

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

瀏覽:141日期: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怎么進行對比,發(fā)現(xiàn)重復id2后,去掉arr這個數(shù)組對象id:2,并生成一個新的數(shù)組?

問題解答

回答1:

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

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

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

考慮到可能你還想保證數(shù)組里面元素的鍵值對跟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]){//如果出現(xiàn)鍵值相同當值不同,就不算重復 result = true; break; } //如果上面條件不通過,那就表示鍵值重復 result = false; }//遍歷到最后,如果鍵值都重復,那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;});回答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
主站蜘蛛池模板: 沙雅县| 雅安市| 沙田区| 定日县| 灯塔市| 宜黄县| 慈利县| 鹿邑县| 江川县| 三亚市| 乐平市| 黄山市| 岗巴县| 寻乌县| 同德县| 石首市| 左权县| 五华县| 洪洞县| 蒲江县| 额敏县| 广饶县| 潮安县| 英吉沙县| 广东省| 贵阳市| 东城区| 加查县| 堆龙德庆县| 商城县| 夹江县| 崇左市| 莒南县| 宿州市| 海兴县| 丰台区| 嘉禾县| 黑山县| 棋牌| 三台县| 繁昌县|