在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ JavaScript數(shù)組對象去重

JavaScript數(shù)組對象去重

這種數(shù)組如何去重

let arr = [{ name: 'li', age: 12 }, { name: 'li' age: 12 }]

除了這種方法還有啥更高效的方法去除數(shù)組里面對象重復(fù)的元素

unique (array) {
      var res = []
      for (var i = 0, arrayLen = array.length; i < arrayLen; i++) {
        for (var j = 0, resLen = res.length; j < resLen; j++) {
          if (array[i].name === res[j].name) {
            break
          }
        }
        if (j === resLen) {
          res.push(array[i])
        }
      }
      return res
    }
回答
編輯回答
只愛你

不考慮兼容性的話可以用ES6的語法特性 Array.from(new Set(arr.map(v => JSON.stringify(v)))).map(v=>JSON.parse(v))

2018年2月17日 15:29
編輯回答
毀了心

請百度lodash

2017年6月29日 11:20
編輯回答
別逞強

謝邀,一個比采納稍快一點的方法

Array.from(
    arr
    .reduce((m, x) => m.set(JSON.stringify(x), x), new Map())
    .values()
)

當(dāng)然,前提是數(shù)據(jù)符合 JSON 格式。

2017年7月12日 18:01
編輯回答
歆久
let arr = [{ name: 'li', age: 12 }, { name: 'li', age: 12 }],
    result = {},
    newArr = [];
    
arr.map((item,index)=>{
    result[arr[index].name] = arr[index];
})

for(item in result){
    newArr.push(result[item]);
}

console.log(newArr) //[{ name: 'li',age: 12 }]
2017年8月11日 07:48
編輯回答
卟乖
function unique() {
            var res = [];
            for (var i = 0; i < arr.length; i++) {
                var len = arr.length;
                while(len > i) {
                    if (arr[i].name == arr[len].name) {
                        res.push(arr[len]);
                    }
                    len--;
                }
            }
            return res;
        }
2018年5月24日 20:45
編輯回答
傲嬌范
let arr = [{ name: 'li', age: 12 }, { name: 'li', age: 12 }]
function unique(list) {
  return list.reduce((tmp, item) => {
    var str = JSON.stringify(item)
    if (tmp.findIndex((ele) => {
      return JSON.stringify(ele) === str
    }) === -1) {
      tmp.push(item)
    }
    return tmp
  }, [])
}
console.log(unique(arr))
2018年3月23日 09:10