我很新來反應。目前我正在嘗試將 2 個陣列專案合并為一個,但我想遍歷每個專案。我怎樣才能做到這一點?
const arr1 = [ { value: "red", label: "Red" },{ value: "yellow", label: "Yellow" },{value: "Blue", label: "Blue" },]
const arr2 =[ { value: "s", label: "S" },{ value: "m", label: "M" },{ value: "l", label: "L" },]
預期結果:["red,s","re??d,m","re??d,l"],["yellow,s","yellow,m","yellow,l"]....
我試過 concat() & reduce,但我得到的結果是兩個陣列合并在一起而不是專案單獨合并。有人可以幫忙嗎?
uj5u.com熱心網友回復:
您可以使用 map 來操作資料。
const arr1 = [ { value: "red", label: "Red" },{ value: "yellow", label: "Yellow" },{value: "Blue", label: "Blue" },]
const arr2 =[ { value: "s", label: "S" },{ value: "m", label: "M" },{ value: "l", label: "L" },]
console.log(...arr1.map(data => {
return arr2.map(data2 => data.value "," data2.value)
}))
uj5u.com熱心網友回復:
這對我有用,使用嵌套回圈:
const arr1 = [ { value: "red", label: "Red" },{ value: "yellow", label: "Yellow" },{value: "Blue", label: "Blue" },]
const arr2 =[ { value: "s", label: "S" },{ value: "m", label: "M" },{ value: "l", label: "L" },]
const newarr = []
for (i=0; i<arr1.length; i ) {
tmp = []
for (j=0; j<arr2.length; j ) {
tmp.push([arr1[i].value, arr2[j].value])
}
newarr.push(tmp)
}
console.log(newarr)
// [
// [ [ 'red', 's' ], [ 'red', 'm' ], [ 'red', 'l' ] ],
// [ [ 'yellow', 's' ], [ 'yellow', 'm' ], [ 'yellow', 'l' ] ],
// [ [ 'Blue', 's' ], [ 'Blue', 'm' ], [ 'Blue', 'l' ] ]
// ]
uj5u.com熱心網友回復:
試試這個(隨意將鍵更改為 .value 或 .label)
function mergeArrays(arr1, arr2) {
let result = [];
for (let i = 0; i < arr1.length; i ) {
result.push([]);
for (let j = 0; j < arr2.length; j ) {
result[i] = [ ...result[i], arr1[i].value arr2[j].value ]
}
}
}
uj5u.com熱心網友回復:
非常直接的嘗試將是
[...arr1, ...arr2].forEach(console.log)
uj5u.com熱心網友回復:
const newArray = [...arr1,...arrr2]; 控制臺日志(新陣列);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/339829.html
標籤:javascript 数组 反应
上一篇:在異步函式超時期間更新變數
