簡體   English   中英

精確地將2列從2D數組映射到key:value對

[英]Concisely mapping 2 columns from 2D array to key:value pairs

在此示例代碼段中,我有選擇地將2D數組中的2列轉換為一個對象。 第一列代表鍵,第二列代表值。

我覺得沒有這么多代碼行,就有一種更簡潔的方法來整理這個想法。

var my2dArray = [ ['a',2], ['b',3], ['c',4] ];
var keys = [];
var values = [];
var myObj = {};

for(var row = 1; row < my2dArray.length; row++) {
    keys[row] = my2dArray[row][0];
    values[row] = my2dArray[row][1];
    myObj[keys[row]] = values[row];
}

console.log(prod_compare); // outputs object

實際上,我有一個4列數組。 不要介意my2dArray的簡單性。 有沒有一種方法可以選擇這兩個列以映射到對象,而不必聲明2個臨時數組?

您的代碼從根本上來說還可以,但是可以更加簡潔明了:

var my2dArray = [ ['a',2], ['b',3], ['c',4] ];
var myObj = {};

for (var i=0, iLen=my2dArray.length; i<iLen; i++) {
  myObj[my2dArray[i][0]] = my2dArray[i][1];
}

這可以將[['a', 1, 2, 3], ['b', 1, 2, 3]]{a: [1, 2, 3], b: [1, 2, 3]}

for(var row = 0; row < my2dArray.length; row++) {
    keys[row] = my2dArray[row][0];
    values[row] = my2dArray[row].slice(1);
    myObj[keys[row]] = values[row];
}

暫無
暫無

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

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