簡體   English   中英

Javascript,具有多個選擇元素的子集數組

[英]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);

您可以通過filterincludes的組合來實現此目的:

const filteredArray = arrayTotal.filter(value => arraySelectors.includes(value))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM