簡體   English   中英

如何從數組中獲取包含相同元素的子數組?

[英]How to get sub-arrays containing same elements from an array?

我有一個包含重復元素的數組。 我需要的是將那些重復的元素放到新的子數組中。

例如:

I have the main array, array = [ a, b, c, a, d, c, c, b, a ]

what I need is to get this array divide into new sub-arrays dynamically like below:

subArray1 = [ a,a,a]
subArray2 = [b,b]
subArray3 = [c,c,c]
subArray4 = [d]

謝謝。

您可以按值對數組進行分組。

 const array = ['a', 'b', 'c', 'a', 'd', 'c', 'c', 'b', 'a'], grouped = Object.values(array.reduce((r, v) => { (r[v] ??= []).push(v); return r; }, {})); console.log(grouped);

let array = ['a', 'b', 'c', 'a', 'd', 'c', 'c', 'b', 'a'];

function divide(array) {
    let allArrays = [];
    for (let i = 0; i < array.length; i++) {
       if(!allArrays.flat().includes(array[i])) 
       allArrays.push(array.filter(el => el === array[i]));
    }
    return allArrays;
}

let [subArray1,subArray2,subArray3,subArray4] = divide(array);

暫無
暫無

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

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