javascript - 将 javascript 对象数组转换为数组数组

标签 javascript arrays ecmascript-6

我在 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/

相关文章:

javascript - JSON - JavaScript 获取嵌套值

c - 将 char * 数组中的字符串分配给另一个 char * 数组

javascript - JS : Replace some fields of an specific object inside of an array

javascript - (节点:199408) DeprecationWarning: Collection#find: pass a function instead

javascript - Mongoose 对象 :javascript map function not working on adding new keys

javascript - 如何使用 Protractor 测试是否加载了正确的图像?

c - 如何在 C 中创建用户定义的结构数组

php - 多行字符串到数组

javascript - 使用 Symbol.for ('string' ) 而不是纯字符串有什么好处

javascript - 如何让循环动画停止和恢复?