-2

在下面的数组数组中,我需要更新特定名称的id值。

objArray = [{ name: John, id: 12}, { name: Jake, id: 45}, { name: Jacob, id: 78}];

例如:如果用户在文本框中输入名称和 id 并单击提交,我想为特定名称更新数组中的 id。

我可以使用 for 循环来完成此操作,但您能否告诉我在 Java Script/React 中执行此操作的最有效方法?

4

2 回答 2

0

使用该find功能并设置输入的名称。

看看这个代码片段

let objArray = [{  name: "John",  id: 12}, {  name: "Jake",  id: 45}, {  name: "Jacob",  id: 78}];

let name = 'Jake'
let newId = 59;
objArray.find((o) => o.name === name).id = newId;

console.log(objArray);
.as-console-wrapper {
  max-height: 100% !important
}

于 2018-02-08T15:50:56.097 回答
0

您可以使用它findIndex来获取名称匹配的对象的索引。然后使用该索引来更新 id

var objArray = [{
  name: 'John',
  id: 12
}, {
  name: 'Jake',
  id: 45
}, {
  name: 'Jacob',
  id: 78
}];

function update() {
  var getVal = document.getElementById('ip').value.trim();
  var getIndex = objArray.findIndex(function(item) {
    return item.name.toLowerCase() === getVal.toLowerCase();
  })
  objArray[getIndex].id= "newId"
  console.log(objArray)
}
<input type="text" id="ip">
<button onclick="update()">Update</button>

于 2018-02-08T15:54:42.997 回答