在下面的数组数组中,我需要更新特定名称的id值。
objArray = [{ name: John, id: 12}, { name: Jake, id: 45}, { name: Jacob, id: 78}];
例如:如果用户在文本框中输入名称和 id 并单击提交,我想为特定名称更新数组中的 id。
我可以使用 for 循环来完成此操作,但您能否告诉我在 Java Script/React 中执行此操作的最有效方法?
在下面的数组数组中,我需要更新特定名称的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>