簡體   English   中英

javascript中從一維數組到二維數組

[英]From 1d array to 2d array in javascript

數組 [123456789012345678901234567890] 結果:[[123123123] [456456456] [890890890]]

拼接數組以獲得上述結果的最簡單方法是什么。 我知道如何獲得:[[1234567890][1234567890][1234567890]]

但不是一個簡單的方法:[[123123123] [456456456] [890890890]]

你的數據有一個小問題。 輸出不包含“7”位數字。 我想這是一個錯誤。

假設初始數據為: [1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9]

和輸出: [[1,2,3,1,2,3,1,2,3],[4,5,6,4,5,6,4,5,6],[7,8,9,7,8,9,7,8,9]]

這樣做:

 arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9] arr = arr.reduce((acc, cur, i) => { idx = Math.floor((i / 3) % 3) acc[idx].push(cur) return acc }, [[], [], []]) console.log("arr", arr)

幾個關鍵點:

  • Math.floor((i / 3) % 3)根據數組位置獲取正確的索引。
  • [[], [], []] :這是累加器acc的初始條件。 很多人不知道,但它可以是任何對象,不一定是0[]

暫無
暫無

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

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