我有以下对象被返回.我通过读取json文件并将结果存储在新对象中来计算名称列表.
{
ted: 501,
jeff: 40,
tony: 90
}
Run Code Online (Sandbox Code Playgroud)
以下函数创建一个对象,其名称为属性,计数为其值.
function countNames(json){
var count = {};
for (var i = 0, j = json.length; i < j; i++) {
if (count[json[i].name]) {
count[json[i].name]++;
}
else {
count[json[i].name] = 1;
}
}
return count;
}
Run Code Online (Sandbox Code Playgroud)
我需要创建一个生成这样结果的对象数组.
[
{
name: 'ted',
total: 501
},
{
name: 'jeff',
total: 40
}
{
name: 'tony',
total: 90
}
]
Run Code Online (Sandbox Code Playgroud)
我不确定实现这一目标的最佳方法和最有效的方法是什么.任何帮助表示赞赏.
请考虑以下Javascript代码段:
for (var item in obj) {
result.push({
name: item,
total: obj[item]
});
}
Run Code Online (Sandbox Code Playgroud)
输出:
[
{
"name":"ted",
"total":501
},
{
"name":"jeff",
"total":40
},
{
"name":"tony",
"total":90
}
]
Run Code Online (Sandbox Code Playgroud)
我不明白你的代码示例如何与问题相关,但这会将第一种格式的数据转换为最后一种格式:
var output = Object.keys(input).map(function(key) {
return {
name: key,
count: input[key]
}
});
Run Code Online (Sandbox Code Playgroud)
它使用函数式编程风格,通常可以使代码更清晰.
| 归档时间: |
|
| 查看次数: |
61 次 |
| 最近记录: |