var arr = [{id:1,"name":"John"},{id:2,"name":"James"}]
$.each(arr, function(){
if(this.id == 1){
//change john to Johnathan
}
});
不使用鍵,是否可以更改數組對象?使用循環更改數組對象
var arr = [{id:1,"name":"John"},{id:2,"name":"James"}]
$.each(arr, function(){
if(this.id == 1){
//change john to Johnathan
}
});
不使用鍵,是否可以更改數組對象?使用循環更改數組對象
你喜歡這款的循環:
var arr = [{id:1,"name":"John"},{id:2,"name":"James"}]
$.each(arr, function(){
if(this.id == 1){
this.name = 'Johnathan';
//change john to Johnathan
}
});
但你正在使用的關鍵,'名稱'對嗎? –
爲什麼這比'this.name ='Johnathan'更好? – 2015-07-11 05:36:26
不是,你是對的,改變了答案。 – OSDM
當然,你可以做到這一點的對象轉換爲字符串,如果你正在尋找一個黑客。你打算怎麼做?
var arr = [{id:1,"name":"John"},{id:2,"name":"James"}]
$.each(arr, function(i){
if(this.id == 1){
arr[i] = JSON.parse(JSON.stringify(this).replace("John", "Johnathan"))
}
});
我能想到的唯一的辦法就是改變一切「約翰」值「約翰遜」 的所有屬性沒有明確使用屬性名。您可以循環對象上的所有屬性。
for (var i = 0; i < arr.length; i++) {
for (var prop in object) {
if (object.hasOwnProperty(prop)) {
if (arr[i][prop] === 'John') {
arr[i][prop] = 'Johnson';
}
}
}
}
這可能不適合你,但它是唯一的方法來獲取對象的值,而不明確使用屬性名稱。
我想實現的是實際上這個http://stackoverflow.com/questions/31353930 /改變陣列對象屬性-然後保存-後端到localStorage的 –
的話,我認爲你需要與ID == 1
這裏更換整個陣列的對象是什麼,我試圖
for(var i = 1;i<arr.length;i++){
if(this.arr[i].id == 1){
this.arr[1] = {'id':'1','name':'Johnathan'};
}
你的意思是不使用'這.name =「Jonathan」;'?這是不可能的。 – techfoobar
是的,這是可能的,你可以改變'鍵的值,不用改變鍵',因此對象被改變 – ozil
@SkyFang鍵,'id'參與你的例子。 –