javascript - 更改数组中的特定对象

标签 javascript jquery

从对象数组开始:

var array=[
    {name:"name1",value:"value1"},
    {name:"nameToChange",value:"oldValue"},
    {name:"name3",value:"value3"}
];

当对象中的另一个给定属性设置为给定值时,如何更改其中一个对象的给定属性的值?

例如,从上面显示的数组开始,我希望更改 valuename 时为“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/

相关文章:

javascript - Flash 运行时在使用 PLupload 的 IE8 中不起作用

javascript - 通过 start() 函数而不是 show() 元素添加 throbber

javascript - 使用 DOM 来识别序列中的数字

javascript - 使用 ZK 框架的只读组合框

javascript - 如何将选择元素的值和文本移动到另一个选择元素

javascript - 我怎样才能让这个函数更高效,包含3个循环?

javascript - jqGrid - 执行操作之前的模式窗口

javascript - Slider FileReader JS 多图上传(递增索引)

javascript - 如何在每个 div 中找到 <ul> 的数量

javascript - 将参数或包含对象传递给 jQuery UI 可拖动事件