Javascript:迭代对象数组并形成新数组
我想按如下方式转换以下数组:Javascript:迭代对象数组并形成新数组,javascript,json,loops,Javascript,Json,Loops,我想按如下方式转换以下数组: [{'dog' : 2} {'cat' : 4} , {'chimp' : 3}] -> [{'text' : 'dog', 'size' : 2}, {'text' : 'cat', 'size' : 4}, {'text' : 'chimp', 'size' : 3}] 伪码 for obj in array: new_obj = {'text' : obj.key, 'size' : obj.val} new_array.append(
[{'dog' : 2} {'cat' : 4} , {'chimp' : 3}] -> [{'text' : 'dog', 'size' : 2}, {'text' : 'cat', 'size' : 4}, {'text' : 'chimp', 'size' : 3}]
伪码
for obj in array:
new_obj = {'text' : obj.key, 'size' : obj.val}
new_array.append(new_obj)
return new_array
没那么难,你可以用
Array.map
和Object.keys()
让arr=[{
"狗":2
}, {
猫:4
}, {
“黑猩猩”:3
}];
让结果=arr.map(a=>{
设key=Object.key(a)[0];
返回{
文本:键,
大小:a[键]
}
});
控制台日志(结果)
为什么要使用let
?@webdeb为什么要使用const?;-)@RobG,因为我不打算重新分配variable@webdeb-我想关键是OP没有推断出任何标准来确定var、let或const中的任何一个是否比另一个更合适。因此,质疑其中一个的使用是没有意义的。我使用var,除非显式需要const或let,但这只是我的问题。;-)我完全同意,就让我聪明点吧,这不是常数
const newArray = oldArray.map(item => {
const key = Object.keys(item)[0];
// Add some guard to handle empty objects..
return { text: key, size: item[key] };
});