JavaScript/React - 使用数组数组中的特定键名更新数组中的值

JavaScript/React - Update a value in array with particular key name from a array of arrays

在下面的数组数组中,我需要更新特定 name.

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

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

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

使用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
}

您可以使用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>