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

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

javascript - js判斷一個數組是否重復

瀏覽:182日期:2023-03-03 18:23:55

問題描述

js怎么判斷一個數組對象里面有重復的值,并且刪除重復的值只保留一個比如 var arr = [{name:’a’},{name:’b’},{name:’c’},{name:’d’},{name:’a’}] 怎么對比

問題解答

回答1:

可以雙for循環去找,用第一個和后面挨個對比,重復則刪除,在從第二個找,在向后對比,重復則刪除

const del = (arr) => { for( let i=0;i<arr.length;i++) {for(let j=i+1;j<arr.length;j++) { if (arr[i].id==arr[j].id) {arr.splice(j,1);i--; }} } return arr;}回答2:

突發奇想寫的。。。不知道是否滿足所有要求。。。哈哈

方法一:

const del = (arr)=>{ let map = []; for(let i = 0; i < arr.length; i++) { let key = JSON.stringify(arr[i]); if(map.includes(key)) {arr.splice(i, 1);i--; } else {map.push(key); } } return arr;}

方法二:

const del = arr=>Array.from(new Set(arr.map(a=>JSON.stringify(a)))).map(a=>JSON.parse(a))回答3:

temp.indexOf ( arr[i].name ) = -1;

res.push(arr[i]);

數組去重方法比較多,你還可以有更好的方法

回答4:原材料

arr 是一維數組 而且元素是對象。 要處理的內容是該對象下的 name 屬性。

var arr = [{name:’a’},{name:’b’},{name:’c’},{name:’d’},{name:’a’}]處理思路

遍歷他,然后在每次遍歷的 item 基礎上再遍歷一次 arr 挨個對比 如果發現重復就留個記錄

var logger = (a, b) => { console.group(’誰重復了?’); console.log(’元素:’, a); console.log(’下標:’, b); console.groupEnd(); }// 遍歷 arr.filter((item, idx, its) => { // 一旦發現有重復的元素就返回 true (通過 its.some 注意他的兩個參數 e 和 idx2) // 無重復的過濾掉 return its.some((e, idx2) => {return (e.name === item.name && idx2 !== idx); });}).forEach(logger); ScreenShot

javascript - js判斷一個數組是否重復

回答5:

// 數組去重// 有key表示是復雜數組去重,根據數組中對象的屬性key來去重function arrUniq(arr, key) {

if (!Array.isArray(arr) || arr.length < 2) { return arr;}// 簡單數組去重if (!key) { return Array.from(new Set(arr));}// 復雜數組去重var obj = {}, res = [];arr.forEach((item) => { if (!obj[item[key]]) {res.push(item);obj[item[key]] = true; }});return res;

}

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 论坛| 中江县| 静海县| 义乌市| 东兰县| 瓮安县| 措美县| 当涂县| 襄垣县| 克东县| 永城市| 华容县| 安塞县| 石嘴山市| 资兴市| 庆安县| 南江县| 清镇市| 宜宾市| 临澧县| 叶城县| 左云县| 栾川县| 神木县| 介休市| 盱眙县| 清河县| 滨州市| 西华县| 工布江达县| 凌海市| 佛学| 云阳县| 阿坝| 沾益县| 宿迁市| 胶南市| 浮山县| 兴和县| 元氏县| 弋阳县|