从对象数组开始:
var array=[
{name:"name1",value:"value1"},
{name:"nameToChange",value:"oldValue"},
{name:"name3",value:"value3"}
];
当对象中的另一个给定属性设置为给定值时,如何更改其中一个对象的给定属性的值?
例如,从上面显示的数组开始,我希望更改 value
当 name
时为“newValue”等于“nameToChange”。
var array=[
{name:"name1",value:"value1"},
{name:"nameToChange",value:"newValue"},
{name:"name3",value:"value3"}
];
PS。为了创建初始数组,我使用 jQuery 的 serializeArray()
,并且我不想更改 <input name="nameToChange">
的值。我想我可以改变它的值,使用 serialArray()
,然后将其改回来,但这听起来比必要的更复杂。
最佳答案
最简单的方法是迭代这个数组:
var i = arr.length;
while (i--) {
if (arr[i].name === 'nameToChange') {
arr[i].value = 'newValue';
break;
}
}
您将无法使用 native “indexOf”执行相同的操作,因为要比较对象。
关于javascript - 更改数组中的特定对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20442559/