亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在JavaScript中轉換2D數組

在JavaScript中轉換2D數組

溫溫醬 2019-07-02 10:15:40
在JavaScript中轉換2D數組我有一個數組,類似于:[     [1,2,3],     [1,2,3],     [1,2,3],]我想轉接它以得到以下數組:[     [1,1,1],     [2,2,2],     [3,3,3],]使用循環以編程方式這樣做并不困難:function transposeArray(array, arrayLength){     var newArray = [];     for(var i = 0; i < array.length; i++){         newArray.push([]);     };     for(var i = 0; i < array.length; i++){         for(var j = 0; j < arrayLength; j++){             newArray[j].push(array[i][j]);         };     };     return newArray;}然而,這似乎很笨重,我覺得應該有一個更簡單的方法來做到這一點。在那里嗎?
查看完整描述

3 回答

?
翻翻過去那場雪

TA貢獻2065條經驗 獲得超14個贊

array[0].map((col, i) => array.map(row => row[i]));

map打電話callback按順序對數組中的每個元素執行一次函數,并根據結果構造一個新數組。callback只對已賦值的數組的索引調用;對已刪除或從未被賦值的索引調用。

callback使用三個參數調用:元素的值、元素的索引和正在遍歷的Array對象。[來源]


查看完整回答
反對 回復 2019-07-02
?
MM們

TA貢獻1886條經驗 獲得超2個贊

你可以用底盤.js

_.zip.apply(_, [[1,2,3], [1,2,3], [1,2,3]])


查看完整回答
反對 回復 2019-07-02
?
慕容森

TA貢獻1853條經驗 獲得超18個贊

以下是我在現代瀏覽器中的實現(沒有依賴關系):

transpose = m => m[0].map((x,i) => m.map(x => x[i]))


查看完整回答
反對 回復 2019-07-02
  • 3 回答
  • 0 關注
  • 609 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號