私は何のタイトルを知らないので、パートナーの小グループの交流の原因は、このような需要が発生したものです。
次のように元の言葉は、次のとおりです。
二つの配列は、あるM = [a、b]は、N = [{キー:名前: 'トム'}、{キー:bは、名称: 'ジェリー'}、{キー:C、名称: '結婚' }、{キー:B、名称: 'ジェリー'}]、変数を定義し、聞かせnewArry = n.filter((E)=> {})を達成する方法であろう、[{キーに等しいnewArryそう:名前:「トム」}、{キー:B、名前:「ジェリー」}]、および、newArryを再アイデアについての指導を追求する必要性、感謝
記事の純水を読んでいないの答えの首長て参照してください。
最初の行と行と需要:
- 重複排除アレイ
- 配列内の最初の項目が対応する戻り
など、私の最初のアイデアは、横断するネストされたループを使用していた、この質問を参照してください、しかしES6は私たちに多くの便利な構文や機能を与えるArray.prototype.map()
、、 、、Array.prototype.filter()
これらのAPIが大幅にメソッドを使用し、問題を解決するために、当社の効率を向上させることができますES6 MDNまたはルアンYifeng教師の取得を参照してくださいArray.prototype.reduce()
Array.prototype.includes()
重複排除アレイ
let hash = {};
let newN = n.reduce(function(item, next) {
hash[next.key] ? '' : hash[next.key] = true && item.push(next);
return item
}, [])
复制代码
対応する項目を探します
let newArray = newN.filter(el=>{
if(m.includes(el.key)) {
return el
}
})
复制代码
完全なコード:
let m=['a','b'];
let n=[{key:'a', name: 'tom'},{key:'b', name: 'jerry' }, {key:'c', name: 'marry' },{key:'b', name: 'jerry' }];
// 新数组满足两个条件:
//每个元素具有唯一key(先去重)
//查找key与m数组中的元素匹配
let hash = {};
let newN = n.reduce(function(item, next) {
hash[next.key] ? '' : hash[next.key] = true && item.push(next);
return item
}, [])
let newArray = newN.filter(el=>{
if(m.includes(el.key)) {
return el
}
})
console.log(newArray)
//[{key:'a', name: 'tom'},{key:'b', name: 'jerry' }]
复制代码
水の終了
ます。https://juejin.im/post/5d0bbc0cf265da1b904be871で再現