📅  最后修改于: 2023-12-03 15:02:25.973000             🧑  作者: Mango
在处理 JSON 数据时,经常需要修改对象中的某个特定数组的值。本文将介绍如何使用JavaScript来修改JSON对象的数组值。
假设我们有一个JSON对象如下所示:
{
"id": 1,
"name": "John Doe",
"friends": [
{
"id": 2,
"name": "Jane Doe"
},
{
"id": 3,
"name": "Bob Smith"
}
]
}
我们想要将 "id" 为 2 的 "Jane Doe" 的名字改为 "Jane Smith"。
以下是修改 "Jane Doe" 的方法:
const obj = {
"id": 1,
"name": "John Doe",
"friends": [
{
"id": 2,
"name": "Jane Doe"
},
{
"id": 3,
"name": "Bob Smith"
}
]
};
const friendIndex = obj['friends'].findIndex(friend => friend['id'] === 2);
// 找到 friendIndex 为 0
obj['friends'][friendIndex]['name'] = 'Jane Smith';
// 修改 "Jane Doe" 的名字为 "Jane Smith"
console.log(obj);
// 输出: { "id": 1, "name": "John Doe", "friends": [{ "id": 2, "name": "Jane Smith" }, { "id": 3, "name": "Bob Smith" }] }
我们定义了一个函数 findIndex
取得对应 id 的索引,使用这个索引来访问我们想要修改的对象,最后修改对象的值。
事实上,我们必须找到数组中要修改的元素的索引,因为数组中的每个元素都是对象。在我们的示例中,数组中的元素是朋友对象,每个对象都有一个唯一的 id
。
findIndex
方法接受一个回调函数作为参数,该函数应该返回 true 或 false。当返回 true 时,该方法将返回数组中相应元素的索引。
const friendIndex = obj['friends'].findIndex(friend => friend['id'] === 2);
一旦我们知道了索引,我们就可以访问要修改的对象。在我们的示例中,要修改的对象是 “Jane Doe”。
obj['friends'][friendIndex]['name'] = 'Jane Smith';
现在我们已经成功地修改了 JSON 对象中的数组值,返回的结果为:
{
"id": 1,
"name": "John Doe",
"friends": [
{
"id": 2,
"name": "Jane Smith"
},
{
"id": 3,
"name": "Bob Smith"
}
]
}
通过本文,我们学习了如何使用 JavaScript 来修改 JSON 对象中数组的值。我们使用 findIndex
方法找到要修改的对象的索引,并通过索引访问要修改的对象。最后,我们修改对象的值,并成功修改了JSON对象的数组值。