簡體   English   中英

如何使用.map從對象數組創建數組數組?

[英]How to create an array of arrays, from an array of objects using .map?

給出以下代碼:

var data = [];
for (let i = 0; i <2; i++) {
  data.push({
    "a": "1",
    "b": "2"
  });
}

console.log(data);

data.map((el) => {
  var row = Object.keys(el).map(key => el[key]);
  console.log(row);
  return row;
});

console.log(data);

為什么這不產生數組數組,例如:

[
  ["1", "2"],
  ["1", "2"]
]

這是一個CodePen: http ://codepen.io/24ma13wg/pen/MbbQZr

差不多了。 您需要存儲Array#map的結果。

 var data = [], result; for (let i = 0; i <2; i++) { data.push({ "a": "1", "b": "2" }); } result = data.map(el => Object.keys(el).map(key => el[key])); // ^^^^^ missing assignment console.log(result); 
 .as-console-wrapper { max-height: 100% !important; top: 0; } 

如果要更新陣列,則應手動進行:

 var data = []; for (let i = 0; i <2; i++) { data.push({ "a": 2*i, "b": 2*i+1 }); } console.log(data); data.forEach((el,i,arr) => { arr[i] = Object.keys(el).map(key => el[key]); }); console.log(data); 

還可以考慮使用ES2017的Object.values

data = data.map(Object.values);

暫無
暫無

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

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