JavaScript tutorial: How to create a list using a matrix
P粉617237727
2023-09-06 09:54:44
<p><strong>我有一个像这样的数组</strong></p>
<pre class="brush:php;toolbar:false;">const input_array= [
["black", "blue"],
["large", "medium"],
["a", "b", "c"]
//... is it dynamic can be added many rows
];</pre>
<p><strong>我该如何得到一个像这样的数组:</strong></p>
<pre class="brush:php;toolbar:false;">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"],
]</pre>
<p><strong>请记住input_array是动态的</strong></p>
<p><strong>请告诉我如何做到这一点</strong></p>
You can do this like this:
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))Have a look at this, it may be helpful:
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].lengthcareful! May cause browser crash in large matrix.