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'参与你的例子。 –