2016-04-12 24 views
1
[{id:1,price:10},{id:2,price:20}] 

2 kimlikli nesneler dizisi için fiyatı 200'e nasıl güncelleştirebilirim?update json özellik değerini kullanarak döndürme değeri

var obj = [{id:1,price:10},{id:2,price:20}]; 
for(var i=0;i<obj.length;i++){ 
     if(obj[i].id == 2){ 
      //what to do here? 
     } 
     } 

Push ve splice vb. Ile devam edebilirim, ancak sorun, konumunuzu korumaktır.

cevap

0

Veya kısa:

var obj = [{ id: 1, price: 10 }, { id: 2, price: 20 }]; 
 

 
obj.forEach(function (a) { 
 
    if (a.id === 2) { 
 
     a.price = 200; 
 
    } 
 
}); 
 

 
document.write('<pre>' + JSON.stringify(obj, 0, 4) + '</pre>');

+0

bu daha temiz, tüm tarayıcılarda desteklensin mi? –

+0

lütfen buraya bakın: [Tarayıcı uyumluluğu] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach#Browser_compatibility) –

3

Sen yapabilirsiniz: (Eğer aradığınız kişi bir tane buldum çünkü)

obj[i].price = 200; 
break; 

mola tüm öğeler üzerinde döngü devam etmenizi engelleyecektir. Array#forEach() ile

+0

ben bir döngü hatta bir özelliğe erişmek için sadece edebi bir nesneyle ihtiyaç olacağını sanmıyorum ... – zer00ne

+0

yapar geri dönüş ile aynı? –

0
[{id:1,price:10},{id:2,price:20}].forEach(function(a){ (a.id===2) ? a.price=200 : a}); 
İlgili konular