[英]Javascript, subset array with more than one selecting element
如何使用數組子集另一個數組, arrayTotal
是數組是我需要子集的數組
arrayTotal = ['a','a','a','b','b','c','c','c','d','d','d','d','d']
arraySelectors
是搜索詞的數組,
arraySelectors = ['a','d']
我想實現的 output 是,
['a','a','a','d','d','d','d','d']
或者
[0,1,2,8,9,10,11,12]
我知道這可以通過兩個循環來完成,但我想要一個更優雅的選擇。
雖然您可以使用數組includes
方法之類的方法,但我建議您使用Set
之類的方法,因為它可以很好地擴展(哈希表效率,每個項目的 O(1) 查找)。 請參閱下面的示例。
const arrayTotal =['a','a','a','b','b','c','c','c','d','d','d','d','d']; arraySelectors = new Set(['a','d']); const filtered = arrayTotal.filter(el => arraySelectors.has(el)); console.log(filtered);
您可以通過filter
和includes
的組合來實現此目的:
const filteredArray = arrayTotal.filter(value => arraySelectors.includes(value))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.