JavaScript,从多个数组中获取所有唯一组合

可燃比萨

我正在寻找一种从多个数组生成所有可能组合的方法。当涉及到 1 时,我能够找到解决方案,但是当涉及到更多时,就会出现问题。为了更容易理解我的问题,假设我们有这两个数组:['small','big']and ['red', 'green'],我想要得到的结果是:

小绿球小红球大绿球大红球绿球红球小球大球绿小球红大球等。

对我来说最大的困难是弄清楚你将如何做到这一点,每个阵列都不会有任何重复,例如:small large ballgreen red ball

天空之城

这是我的解决方案

let sizes = ['small', 'medium sized', 'big']
let colors = ['green', 'red', 'blue']
let objects = ['ball', 'square']

const flatten = list => list.reduce(
   (a, b) => a.concat(Array.isArray(b) ? flatten(b) : b), []
);

function uniqeCombine(...data) {
  
  const flat = flatten(data);
  return flat.reduce( (acc, v, i) =>
    acc.concat(flat.slice(i+1).map( w => v + ' ' + w )),
  []);
}


console.log(uniqeCombine(sizes, colors, objects))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从数组获取给定数量的元素的所有唯一组合

如何找到多维数组中每个元素的所有唯一组合

从排列列表中获取所有唯一组合

Python-从长度不等的列表中获取替换的所有唯一组合

根据唯一组合将带有对象的数组拆分为多个数组

从列表列表中获取所有唯一组合,直到第 n 个组合

PHP数组-3个数组中的唯一组合

找到 1 到 k 之间 n 个数字的所有唯一组合

递归函数来获得两个或多个的所有唯一组合

从两个字符串中获取所有唯一组合 c#

生成数组的所有唯一组合的最佳方法?

c#如何获取对象列表及其频率的所有唯一组合

一组值的所有唯一组合

如何从SQL中的1列返回所有唯一组合?

R在给定的类中创建ID的唯一组合(未创建所有组合)

R-给定矩阵和幂,产生包含矩阵列的所有唯一组合的多个矩阵

沿堆叠二维numpy数组的第三维确定所有唯一组合

组合 3 个表以生成所有列的唯一组合

Libre Office 中的值列表中给定长度的所有唯一组合

查找具有两列的唯一组合的所有行

从具有重复元素的向量生成所有唯一组合

使用 t-sql 从一组特定数字中获取 6 个数字的所有组合

SQL 获取字段的唯一组合

从向量获取唯一组合的网格

如何从多个数组中获取所有组合?

生成两个Excel列的所有可能的唯一组合

如何获得特定列的值的所有唯一组合

生成项目的所有唯一组合

查找简单路径的所有唯一组合