JavaScript教學:使用矩陣建立清單的方法
P粉617237727
P粉617237727 2023-09-06 09:54:44
0
2
567
<p><strong>我有像這樣的吞吐量</strong></p> <pre class="brush:php;toolbar:false;">const input_array= [ [“黑色”、“藍色”]、 [「大」、「中」]、 [“a”、“b”、“c”] //...是否動態可以新增多行 ];</pre> <p><strong>我得到了一個像這樣的吞吐量:</strong></p>
const Finallist = [
    [“黑色”、“大”、“a”]、
    [“黑色”、“大”、“b”]、
    [“黑色”、“大”、“c”]、
      
    [“黑色”、“中”、“a”],
    [“黑色”、“中”、“b”]、
    [“黑色”、“中”、“c”]、

    [“藍色”、“大”、“a”],
    [“藍色”、“大”、“b”]、
    [“藍色”、“大”、“c”]、
      
    [“藍色”、“中”、“a”]、
    [“藍色”、“中”、“b”]、
    [“藍色”、“中”、“c”]、
  ]</pre>
<p><strong>請記得input_array是動態的</strong></p>
<p><strong>請告訴我該如何做到這一點</strong></p>            
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 

小心! 在大規模矩陣中可能會導致瀏覽器崩潰。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板