給定多個JavaScript 字串值數組,找到在all 中相同出現的元素 陣列。例如:
<code class="javascript">var arr1 = ['apple', 'orange', 'banana', 'pear', 'fish', 'pancake', 'taco', 'pizza']; var arr2 = ['taco', 'fish', 'apple', 'pizza']; var arr3 = ['banana', 'pizza', 'fish', 'apple'];</code>
預期輸出:
<code class="javascript">['apple', 'fish', 'pizza']</code>
要找出符合的元素,我們可以使用陣列方法的組合:
<code class="javascript">const arrays = [arr1, arr2, arr3]; const result = arrays.shift().filter((v) => { return arrays.every((a) => { return a.indexOf(v) !== -1; }); });</code>
步驟:
透過迭代地將這個邏輯應用於每個數組,我們可以有效地找到在 所有 提供的數組中相同出現的元素。
重複元素處理:
提供的解假設陣列不包含重複元素。如果是這樣,您可以如下修改程式碼:
<code class="javascript">const result = arrays.shift().reduce((res, v) => { if (res.indexOf(v) === -1 && arrays.every((a) => { return a.indexOf(v) !== -1; })) res.push(v); return res; }, []);</code>
此程式碼使用 .reduce() 而不是 .filter()。它檢查結果數組中的重複項,並僅添加每個數組中存在的唯一元素。
任意數量的陣列:
此解法旨在與未知數量的陣列。透過使用 arrays.shift(),我們可以順序比較第一個陣列和其餘數組,直到處理完所有數組。
以上是如何在多個 JavaScript 陣列中尋找匹配元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!