我在 ES6 中寻找一种优雅的方式来转换这个数组:
var src = [{x:1,y:'a'},{x:2,y:'b'}];
到这个数组:
var desc = [[1,2],["a","b"]];
其中包含一个包含所有属性的数组和一个包含所有值的数组。
为此,我写了这段代码:
var src = [{x:1,y:'a'},{x:2,y:'b'}];
var prop1 = [];
var prop2 = [];
src.forEach(item => {
prop1.push(item.x)
prop2.push(item.y);
});
var desc = [prop1, prop2];
它工作正常,但它很长,所以我正在寻找最终的改进和简短的代码。
最佳答案
您命名 props 顺序(因为不能保证对象中键的顺序),然后通过提取 correspondend prop 值映射到 src
数组。
var src = [{x:1,y:'a'},{x:2,y:'b'}]
var props = ['x', 'y'];
var result = props.map(prop => src.map(x => x[prop]))
console.log(result)
关于javascript - 将 javascript 对象数组转换为数组数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49732901/