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

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

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

瀏覽:125日期: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
主站蜘蛛池模板: 阆中市| 化德县| 漠河县| 沙洋县| 宜阳县| 迭部县| 和平县| 青海省| 富川| 青铜峡市| 奉贤区| 阳高县| 焉耆| 潮州市| 修文县| 蓝田县| 绍兴市| 论坛| 沁阳市| 阿拉善右旗| 台东市| 天长市| 富川| 阿鲁科尔沁旗| 曲沃县| 鹤山市| 吉林省| 洪江市| 新宾| 吉安县| 那曲县| 读书| 孝义市| 吴堡县| 边坝县| 株洲市| 普定县| 海门市| 桃园市| 南江县| 扶风县|