js算法-不确定的数组数,每每组合得值

如图示,规格可以一直添加,也就是说规格生成的数组个数不确定,根据规格生成的数组中的个数分别两两结合成一个值
1.png
下面是有人帮忙的解答

show_all = function combine ([item, ...arr]) {
    if (arr.length) {
        const sub = combine(arr);
        const res =  [];
        sub.forEach(s => item.forEach(i => res.push(`${i},${s}`)))
        return res
    } else {
        return item
    }
};

show_all([
  ['白色', '蓝色', '红色'],
  ['50cm'],
  ['大', '中', '小'],
  ['L', 'M', 'S'],
])

2082934577-5d80c8728fce9_articlex.png

这个结果是对的,但是需求有一个要求就是要按顺序输出,【白色】的所有先输出,再出【蓝色】,再出【红色】,这种是生成结果后再做排序,还是可以有方法直接这样输出?

阅读 1.9k
1 个回答

sub.forEach(s => item.forEach(i => res.push(`${i},${s}`)))
//换下位置
item.forEach(s => sub.forEach(i => res.push(`${s},${i}`)))
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题