[英]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.