JavaScript教程:使用矩阵创建列表的方法
P粉617237727
P粉617237727 2023-09-06 09:54:44
[Vue.js讨论组]

我有一个像这样的数组

const input_array= [
    ["black", "blue"],
    ["large", "medium"],
    ["a", "b", "c"]
    //... is it dynamic can be added many rows
  ];

我该如何得到一个像这样的数组:

const finallist = [
    ["black", "large", "a"],
    ["black", "large", "b"],
    ["black", "large", "c"],
      
    ["black", "medium", "a"],
    ["black", "medium", "b"],
    ["black", "medium", "c"],

    ["blue", "large", "a"],
    ["blue", "large", "b"],
    ["blue", "large", "c"],
      
    ["blue", "medium", "a"],
    ["blue", "medium", "b"],
    ["blue", "medium", "c"],
  ]

请记住input_array是动态的

请告诉我如何做到这一点

P粉617237727
P粉617237727

全部回复(2)
P粉729518806

你可以像这样做:

const input_array = [
    ["black", "blue"],
    ["large", "medium"],
    ["a", "b", "c"]
]
const getCompinations = array =>
  array.reduce((v, b) =>
    v.reduce((r, g) => [...r, ...b.map(w => [].concat(g, w))], [])
  )
console.log(getCompinations(input_array))
P粉449281068

看一下这个,可能会有帮助:

const input_array = [
    ["black", "blue"],
    ["large", "medium"],
    ["a", "b", "c"]
    //... 是否可以动态添加多行
];
const mmc = input_array.reduce((e, r) => e * r.length, 1);
const finallist = input_array.map((x,i)=>({index:i,arr:x})).reduce((e, r) => {
    for (var u = 0; u  e[u].includes(r)) || e[u].length 

小心! 在大规模矩阵中可能会导致浏览器崩溃。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号