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