2013-11-25 4 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; 
}); 

пс. используется 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

Смежные вопросы