我有兩個陣列
[a1,a2,a3] 和 [d1,d2,d3]
我希望我的請求物件是
```{
appid:a1,
dataid:d1
},
{appid:a1,
dataid:d2
},
{appid:a1,
dataid:d3
},
{appid:a2,
dataid:d1
},
{appid:a2,
dataid:d2
},
{appid:a2,
dataid:d3
},
{appid:a3,
dataid:d1
},
{appid:a3,
dataid:d2
},
{appid:a3,
dataid:d3
}```
任何幫助表示贊賞。前進的陣列可能會變得動態并且需要動態地執行邏輯,但現在我希望它用于上述陣列。
uj5u.com熱心網友回復:
這是笛卡爾積:
const cartesian = (a, b) => a.flatMap(appid => b.map(dataid => ({appid, dataid})));
console.log(cartesian(["a", "b", "c"], [1, 2, 3]));
uj5u.com熱心網友回復:
let combinedArray = [];
array1.forEach((element, index) => {
let batch = [];
array2.forEach((element2, index2) => {
batch.push({
appid: element,
dataid: element2
});
});
combinedArray.push(...batch);
});
沿著這些思路。假設陣列長度相同且順序正確,這似乎是最簡單的方法。您可以改用 for 回圈。
實際上,這似乎也不是正確的解決方案。我不確定你想用你的例子實作什么模式,所以我會這樣。您可以根據需要調整演算法。
編輯是因為我重新閱讀了這個問題。
uj5u.com熱心網友回復:
[].concat.apply([],[1,2,3].map(x => [1,2,3].map(y=> { return {'a': x, 'b':y}})))
uj5u.com熱心網友回復:
Const arr1 = [a1, a2, a3];
Const arr2 =[d1, d2, d3];
Const arr3 = [];
for(let i = 0;i<arr1.length;i ){
for(let b=0;b<arr2.length;b ){
return arr3.push({appid: arr1[i], dataid: arr2[b] })
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/482994.html
標籤:javascript 数组 反应 多维数组 ecmascript-6
