我有一个JSON文件,我加载到我的javascript var
在绘制我的数据之前:
{
"Month": "September",
"Value": 1681937,
"Year": 2013
},
{
"Month": "April",
"Value": 2138286,
"Year": 2014
},
我需要更换标签" Value"用"价值+年份"看起来像这样:" Value2013" 9月和" Value2014"四月。
从StackOverflow我知道这应该在javascript中可行但我不知道如何为每个条目访问Year的值并用Value + Year替换Label Value
提前谢谢。
答案 0 :(得分:1)
这个怎么样?
var my = [{
"Month": "September",
"Value": 1681937,
"Year": 2013
}, {
"Month": "April",
"Value": 2138286,
"Year": 2014
}];
console.log('my (before) :', my);
for(var i=0; i<my.length; i++) {
my[i]["Value" + my[i].Year] = my[i].Value;
delete my[i]["Value"];
}
console.log('my (after) :', my);
请参阅jsFiddle的控制台,选择您需要的控制台:
结果将是:
[{
"Month": "September",
"Value2013": 1681937,
"Year": 2013
}, {
"Month": "April",
"Value2014": 2138286,
"Year": 2014
}]
编辑:您可以在此处查看不同的常见可能性及其效果结果:http://jsperf.com/jquery-each-vs-underscore-each-vs-for-loops/18
答案 1 :(得分:1)
我建议使用underscore来顺利实现这一目标。
给定一个对象数组
var myArray=[{
"Month": "September",
"Value": 1681937,
"Year": 2013
},
{
"Month": "April",
"Value": 2138286,
"Year": 2014
}];
您的替换应该是:
_.each(myArray,function(element) {
element['Value'+element.Year]=element.Value;
delete element.Value;
});
结果数组是
[{
"Month": "September",
"Value2013": 1681937,
"Year": 2013
},
{
"Month": "April",
"Value2014": 2138286,
"Year": 2014
}];