我對 javascript 有點陌生,我的目標是獲取陣列中的每 3 個元素并將它們存盤為一個陣列以推送到另一個陣列。下面是它的樣子
var a = [11, 2, 3, 4, 5, 6, 7, 8, 9, 2, 2, 3, 4, 5, 4];
輸出將是
var arrays = [[11, 2, 3], [4, 5, 6], [7, 8, 9], [2, 2, 3], [4, 5, 4]]
這些只是整數,但在我的應用程式中,有一個包含 73 個物件的陣列,它們 id 喜歡像這樣存盤。
var objects = [{}, {}, {}], [{}, {}, {}] ,,,]
基于物件的數量是否會有任何問題,因為 73 不能被三整除
uj5u.com熱心網友回復:
像這樣的東西,這里的物體是隨意的。我正在使用 .slice 獲取下一組 3 個,并將其推送到緩沖區陣列中。我在 for 回圈中使用 .length 作為我的界限,并且每次遞增 3。
var a = [
{x:11}, {x:2}, {x:3}, {x:4}, {x:5}, {x:6}, {x:7},
{x:8}, {x:9}, {x:2}, {x:2}, {x:3}, {x:4}, {x:5}, {x:4}
];
buffer = [];
for(i=0; i<a.length; i =3) {
buffer.push(a.slice(i, i 3));
}
console.log(buffer);
此外, slice 可以處理不能被 3 整除的陣列。您可以在此示例中看到剩余物件位于其自己的陣列中。
var a = [
{x:11}, {x:2}, {x:3}, {x:4}, {x:5}, {x:6}, {x:7},
{x:8}, {x:9}, {x:2}, {x:2}, {x:3}, {x:4}, {x:5},
{x:4}, {x:112}
];
buffer = [];
for(i=0; i<a.length; i =3) {
buffer.push(a.slice(i, i 3));
}
console.log(buffer);
您還可以輕松地適應任何 n 個元素:
var a = [
{x:11}, {x:2}, {x:3}, {x:4}, {x:5}, {x:6}, {x:7},
{x:8}, {x:9}, {x:2}, {x:2}, {x:3}, {x:4}, {x:5},
{x:4}, {x:112}
];
let n = 4;
buffer = [];
for(i=0; i<a.length; i =n) {
buffer.push(a.slice(i, i n));
}
console.log(buffer);
讓我知道這是否有幫助。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/466360.html
標籤:javascript 数组 arr
上一篇:使用轉義字符“?”有什么意義?在JavaScript中構造SQL查詢時,而不是模板文字?[復制]
下一篇:通過兩個陣列映射React
