2013-11-25 69 views
0

我有一个对象数组,并且想要替换所有对象中的特定键。替换对象阵列中的键

JAVASCRIPT

var json = [{ 
    acceleration: 15, 
    cylinders: 4, 
    displacement: 98, 
    horsepower: 80 

}, { 
    acceleration: 14, 
    cylinders: 8, 
    displacement: 307, 
    horsepower: 130  
}]; 

例如马力 - >色。

的溶液可以是

var json = [{ 
    acceleration: 15, 
    cylinders: 4, 
    displacement: 98, 
    color: 80 

}, { 
    acceleration: 14, 
    cylinders: 8, 
    displacement: 307, 
    color: 130  
}]; 
+6

请注意,该问题有**没有任何**与JSON完成。看起来你正在将JavaScript对象文字(JavaScript语言语法的结构)与JSON(独立于语言的数据交换格式,如XML或CSV)相混淆。我会相应地编辑你的问题。另请参阅:[没有像“JSON对象”那样的东西](http://benalman.com/news/2010/03/theres-no-such-thing-as-a-json/)。 –

+0

你可以用循环做到这一点。你有没有尝试过? – Mathletics

+0

可以使用地图 – toshkaexe

回答

-1
var array = [{ 
    acceleration: 15, 
    cylinders: 4, 
    displacement: 98, 
    horsepower: 80 

}, { 
    acceleration: 14, 
    cylinders: 8, 
    displacement: 307, 
    horsepower: 130  
}]; 
for (var i = 0; i < array.length; i++) { 
    var horsepower = array[i].horsepower; 
    array[i].horsepower = undefined; 
    array[i].color = horsepower; 
} 
+0

您应该做一个删除,而不是一个未定义的,因为马力将保持不变。 – codemonkeyww

1

创建fiddle一示例溶液。 使用delete删除属性和添加另一属性与前值:

_.each(json, function(element) { 
    var val = element.horsepower; 
    delete element.horsepower; 
    element.color = val; 
}); 

PS。使用underscorejs编码的便利,纯javascript将是:

var i; 
for (i=0; i<json.length; i++) { 
    var element = json[i]; 
    var val = element.horsepower; 
    delete element.horsepower; 
    element.color = val; 
} 
+0

谢谢!但不起作用,因为我使用javascriptm没有下划线 – toshkaexe