這個問題在這里已經有了答案: 合并兩個具有交替值的陣列 (13 個回答) 合并兩個陣列,以便值交替 5 個回答 在 javascript 中交錯多個陣列 (2 個回答) 6 小時前關閉。
我有兩個陣列。
let a = [1, 3, 5, 7]
let b = [2, 4, 6, 8]
我想要結果:
a = [1, 2, 3, 4, 5, 6, 7, 8]
如何在陣列 A 中每隔一個元素插入陣列 B 的每個元素?
我曾嘗試在 for 回圈中使用 splice,但陣列 A 的長度發生了變化,因此我無法讓它作業。
uj5u.com熱心網友回復:
如果陣列具有相同的長度,那么您可以使用平面映射來避免改變原始陣列。
const a = [1, 3, 5, 7];
const b = [2, 4, 6, 8];
const res = b.flatMap((elem, index) => [a[index], elem]);
console.log(res);
uj5u.com熱心網友回復:
你可以試試:
let a = [1, 3, 5, 7];
let b = [2, 4, 6, 8]
let newArray = [...a, ...b]
console.log(newArray) // [1, 3, 5, 7, 2, 4, 6, 8]
如果你只想排序
let a = [1, 3, 5, 7];
let b = [2, 4, 6, 8]
let newArray = [...a, ...b].sort((a, b) => a - b)
console.log(newArray) // [1, 2, 3, 4, 5, 6, 7, 8]
uj5u.com熱心網友回復:
您可以轉置資料并獲得一個平面陣列。
const
transpose = (a, b) => b.map((v, i) => [...(a[i] || []), v]),
a = [1, 3, 5, 7],
b = [2, 4, 6, 8],
result = [a, b]
.reduce(transpose, [])
.flat();
console.log(result);
uj5u.com熱心網友回復:
不要拼接,只需創建一個新陣列并將它們推入每個其他索引。
做一個 for 回圈,并在每個回圈上做 newArrary.push(a[i]); newArrary.push(b[i]);
uj5u.com熱心網友回復:
您可以創建一個新陣列,回圈遍歷a并將當前專案和專案推入b相同的索引:
let a = [1, 3, 5, 7];
let b = [2, 4, 6, 8];
let res = []
a.forEach((e,i) => res.push(e, b[i]))
console.log(res)
或者,您可以使用Array.map和Array.flat:
let a = [1, 3, 5, 7];
let b = [2, 4, 6, 8];
let res = a.map((e,i) => [e, b[i]]).flat()
console.log(res)
uj5u.com熱心網友回復:
您可以使用 reduce
let a = [1, 3, 5, 7];
let b = [2, 4, 6, 8];
let c = a.reduce((acc, x, i) => acc.concat([x, b[i]]), []);
console.log(c)
這適用于任何長度的陣列,根據長度不同的陣列的所需結果調整代碼。
uj5u.com熱心網友回復:
使用forEach和推送當前元素和來自另一個陣列的相關元素是一個選項
let a = [1, 3, 5, 7];
let b = [2, 4, 6, 8];
let c = [];
a.forEach((x, i) => {c.push(x, b[i])});
console.log(c);
更多關于forEach- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach
uj5u.com熱心網友回復:
創建一個新陣列并通過執行以下操作將其展平。
let a = [1, 3, 5, 7]
let b = [2, 4, 6, 8]
console.log(a.map((e, i)=> [e, b[i]]).flat());
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/345982.html
標籤:javascript
