Javascript 使用循环改变数组对象

Javascript 使用循环改变数组对象,javascript,jquery,Javascript,Jquery,不使用键,是否可以更改数组对象?您可以在循环中这样做: 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":"Jame

不使用键,是否可以更改数组对象?

您可以在循环中这样做:

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
}
});

我能想到的唯一方法是将所有属性中的所有“John”值更改为“Johnson”,而不显式使用属性名称。可以循环对象上的所有属性

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(变量i=0;i

这可能不适用于您,但这是在不显式使用属性名的情况下获取对象上的值的唯一方法

那么我认为您需要用id==1替换整个数组的对象

这是我试过的


for(var i=1;我的意思是不使用
this.name=“Jonathan”;
?这是不可能的。是的,如果可能的话,您可以在不更改键的情况下更改键的值,因此对象是changed@SkyFang你的例子中涉及到键,
id
。你能解释一下为什么不能只做obj.name吗?@Yatrix为什么这比
this.name='Johnathan';
?@OSDM我想要实现的是事实上,这是什么
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';
            }
        }
    }
}