我正在尝试将我的对象数组格式化为一个组件使用的数组。我需要将对象的确切值映射到正确的位置。
e.g。
我的原始数据:
var rawData = [
{ name: 'john',
age: 23,
style : 'expert',
max : 'none'
},
{ name: 'mick',
age: 36,
style : 'inter',
max : 'none'
},
{ name: 'pete',
age: 44,
style : 'med',
max : 'none'
}
]
我想使用underscore.js将此对象转换为以下数组格式,以便我可以在需要此格式的组件中使用。
请注意,只有name
age
和style
不是max
。我有更多不受欢迎的属性,但例如上面我不想写所有。
var result = [
[ "john", "23", "expoert"],
[ "mick", "36", "inter"],
[ "pete", "44", "med"]
]
我尝试了pluck
和map
组合,但似乎无法在输出的数组中获得正确的顺序。任何帮助赞赏。
答案 0 :(得分:5)
const rawData = [
{ name: 'john', age: 23, style : 'expert' },
{ name: 'mick', age: 36, style : 'inter' }
];
const result = rawData.map(Object.values);
console.log(result);

Theres根本不需要使用库。或者更明确地说:
const rawData = [
{ name: 'john', age: 23, style : 'expert' },
{ name: 'mick', age: 36, style : 'inter' }
];
const result = rawData.map(({name, age, style}) => [name, age, style]);
console.log(result);

我更喜欢这个,因为无法保证对象键/值顺序。
答案 1 :(得分:1)
如果没有使用Array#map()
和Object.values()
var rawData = [{
name: 'john',
age: 23,
style: 'expert'
}, {
name: 'mick',
age: 36,
style: 'inter'
}, {
name: 'pete',
age: 44,
style: 'med'
}]
var res = rawData.map(o=>Object.values(o))
console.log(res)