Iro*_*Man 12 javascript arrays
我有一个像这样的对象
var total = { 'Apple': 0.6,
'Banana': 0.6,
'Orange': 1,
'Grapes': 0.4,
'Pineapple': 0.4 }
Run Code Online (Sandbox Code Playgroud)
为此,首先,我将检查对象的长度.
var len = Object.keys(total).length;
Run Code Online (Sandbox Code Playgroud)
现在我想将它转换为key-value数组下的正确对象格式.像这样的东西:
[
{'name': 'Apple', 'value': 0.6},
{'name': 'Banana', 'value': 0.6},
{'name': 'Orange', 'value': 1},
{'name': 'Grapes', 'value': 0.4},
{'name': 'Pineapple', 'value': 0.4}
]
Run Code Online (Sandbox Code Playgroud)
现在我不知道如何解决这个问题的代码.任何帮助都是赞赏的
Sur*_*yan 32
您可以在对象键上使用Array#map函数,并使用所需的形状创建对象.
const total = {
'Apple': 0.6,
'Banana': 0.6,
'Orange': 1,
'Grapes': 0.4,
'Pineapple': 0.4
};
const array = Object.keys(total)
.map(key => ({ name: key, value: total[key] }))
.sort((f, s) => f.value - s.value);
console.log(array);Run Code Online (Sandbox Code Playgroud)
如果使用ES7或更高版本,则可以使用Object#条目替换Object#键.还使用对象拆解可在参数列表中获取和分别.namevalue
const total = {
'Apple': 0.6,
'Banana': 0.6,
'Orange': 1,
'Grapes': 0.4,
'Pineapple': 0.4
};
const array = Object.entries(total)
.map(([name, value]) => ({ name, value }))
.sort((f, s) => f.value - s.value);;
console.log(array);Run Code Online (Sandbox Code Playgroud)
const result = Object.entries(total).map(([name, value]) => ({name, value}));
Run Code Online (Sandbox Code Playgroud)