第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從JS數(shù)組中刪除重復(fù)值

從JS數(shù)組中刪除重復(fù)值

從JS數(shù)組中刪除重復(fù)值我有一個非常簡單的JavaScript數(shù)組,可能包含也可能不包含重復(fù)項(xiàng)。var names = ["Mike","Matt","Nancy","Adam","Jenny","Nancy","Carl"];我需要刪除重復(fù)項(xiàng)并將唯一值放在一個新數(shù)組中。我可以指出我嘗試的所有代碼,但我認(rèn)為它沒用,因?yàn)樗鼈儾黄鹱饔谩N乙步邮躩Query解決方案。
查看完整描述

2 回答

?
慕尼黑的夜晚無繁華

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超6個贊

厭倦了看到所有使用for循環(huán)或jQuery的壞例子。Javascript現(xiàn)在擁有完美的工具:排序,映射和縮小。


Uniq在保持現(xiàn)有訂單的同時減少

var names = ["Mike","Matt","Nancy","Adam","Jenny","Nancy","Carl"];


var uniq = names.reduce(function(a,b){

    if (a.indexOf(b) < 0 ) a.push(b);

    return a;

  },[]);


console.log(uniq, names) // [ 'Mike', 'Matt', 'Nancy', 'Adam', 'Jenny', 'Carl' ]


// one liner

return names.reduce(function(a,b){if(a.indexOf(b)<0)a.push(b);return a;},[]);

更快的uniq與排序

可能有更快的方法,但這個很不錯。


var uniq = names.slice() // slice makes copy of array before sorting it

  .sort(function(a,b){

    return a > b;

  })

  .reduce(function(a,b){

    if (a.slice(-1)[0] !== b) a.push(b); // slice(-1)[0] means last item in array without removing it (like .pop())

    return a;

  },[]); // this empty array becomes the starting value for a


// one liner

return names.slice().sort(function(a,b){return a > b}).reduce(function(a,b){if (a.slice(-1)[0] !== b) a.push(b);return a;},[]);

2015年更新:ES6版本:

在ES6中,你有集合和傳播,這使得刪除所有重復(fù)項(xiàng)非常容易和高效:


var uniq = [ ...new Set(names) ]; // [ 'Mike', 'Matt', 'Nancy', 'Adam', 'Jenny', 'Carl' ]

根據(jù)事件排序:

有人詢問是根據(jù)有多少個唯一名稱來排序結(jié)果:


var names = ['Mike', 'Matt', 'Nancy', 'Adam', 'Jenny', 'Nancy', 'Carl']


var uniq = names

  .map((name) => {

    return {count: 1, name: name}

  })

  .reduce((a, b) => {

    a[b.name] = (a[b.name] || 0) + b.count

    return a

  }, {})


var sorted = Object.keys(uniq).sort((a, b) => uniq[a] < uniq[b])


console.log(sorted)


查看完整回答
反對 回復(fù) 2019-05-23
  • 2 回答
  • 0 關(guān)注
  • 1690 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號