【问题标题】:How to get sub-arrays containing same elements from an array?如何从数组中获取包含相同元素的子数组?
【发布时间】:2021-09-11 02:27:31
【问题描述】:

我有一个包含重复元素的数组。我需要的是把那些重复的元素放到新的子数组中。

例如:

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]

谢谢。

【问题讨论】:

  • 到目前为止你尝试了什么?包括你的工作
  • 我正在尝试从存在许多重复值和唯一值的数组中获取所有重复值的子数组
  • 你写过代码吗?
  • 不,我需要代码
  • 这不是代码编写服务,您应该先尝试一下,也许您可​​以自己找到任何解决方案...

标签: javascript arrays sub-array


【解决方案1】:

您可以按值对数组进行分组。

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);

【讨论】:

    【解决方案2】:
    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);
    

    【讨论】:

      猜你喜欢
      • 2019-12-17
      • 2015-09-07
      • 2022-01-07
      • 1970-01-01
      • 2018-11-20
      • 1970-01-01
      • 2018-07-20
      • 2016-06-25
      • 1970-01-01
      相关资源
      最近更新 更多