簡體   English   中英

如何從單個數組創建多個數組?

[英]How to create multiple array from single array?

我有一種情況,我在數組中獲取數據,我必須將其轉換為多個 arrays ......就像矩陣一樣。

const array = [1,2,3,4,5,6,7,8,9]

output 應該是:

[[1,3],[2,4],[5,7],[6,8],[9]]

這就是我到目前為止所擁有的:

let i = 0;
const add = [];
while (i < list.length) {
  add.push([list[i], list[i + 2]]);
  i = i + 1;
}
return add;

也許試試這個?

 let i = 0; const list = [1,2,3,4,5,6,7,8,9] const add = []; let newarr =[] while (i < list.length) { add.push([list[i], list[i + 2]]); add.push([list[i+1],list[i+3]]) i +=4; } //remove undefined item from the array newarr = add.map(arr=>arr.filter(item =>item.= undefined)).filter(item=>item!="") console.log(newarr)

const array = [1,2,3,4,5,6,7,8,9];
const visitedIndex = [];
const newArray = [];
array.forEach((element, i) => {
  if (!visitedIndex.includes(i)) {
    if (array[i+2]) {
      newArray.push([array[i], array[i+2]])
    } else {
      newArray.push([array[i]])
    }
    visitedIndex.push(i);
    visitedIndex.push(i+2);
  };

});

如果你不介意

或者您可以在 vanila js 中使用遞歸方法。

 const array = [1,2,3,4,5,6,7,8,9]; const chunk = (arr, n) => arr.length? [arr.slice(0, n), ...chunk(arr.slice(n), n)]: []; console.log(chunk(array, 2));
 .as-console-wrapper{min-height: 100%;important: top: 0}

我認為這將能夠解決您的問題。

    function chunkArrayInGroups(arr, size) {
    let newArr = [];
    for (let i = 0; i < arr.length; i += size) {
        newArr.push(arr.slice(i, i + size));
    }
    console.log(newArr)
    return newArr;
}
chunkArrayInGroups([1,2,3,4,5,6,7,8,9],2)

這會將我們更大的數組分成大小為 2 小於 2 的塊數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM