我从api
获得如下的json对象[
{
userId: 1,
title: "title1",
body: "body1"
},
{
userId: 2,
title: "title2",
body: "body2"
},
{
userId: 4,
title: "title4",
body: "body4"
}
]
如何仅更新一个用户,例如userId 4即部分更新json对象。
我知道我可以通过它的id分别更新用户,但我想要实现的只是更新json的部分内容并想要将整个对象发回。
像git那样,更新或添加特定的行或用户。
我希望你能理解我的意思。如果我不清楚,请告诉我。 任何帮助表示赞赏。谢谢
答案 0 :(得分:2)
您可以使用Array.map
运算符操作数组。所以,
const updatedArray = YourArray.map((element, index, array) => {
if (element.userId === 4) {
// do something with this element
}
});
Array.map
运算符将返回变异数组。
答案 1 :(得分:1)
let myArray = [ { userId: 1, title: "title1", body: "body1" },
{ userId: 2, title: "title2", body: "body2" },
{ userId: 4, title: "title4", body: "body4" }
];
objIndex = myArray.findIndex((obj => obj.userId == 4));
myArray[objIndex].title = "updatedTitle";
myArray[objIndex].body = "updatedBody";
console.log("Updated object: ", myArray[objIndex])
答案 2 :(得分:0)
let arr = [
{
userId: 1,
title: "title1",
body: "body1"
},
{
userId: 2,
title: "title2",
body: "body2"
},
{
userId: 4,
title: "title4",
body: "body4"
}
];
function findUserIdIs4(element) {
return element.userId === 4;
};
const foundIndex = arr.findIndex(findUserIdIs4);
arr[foundIndex].title = "newTitle";
console.log(arr[foundIndex])
答案 3 :(得分:0)
通常,出于这样的目的,您希望将JSON结构如下:
const data = {
1:{
userId: 1,
title: "title1",
body: "body1"
},
2:{
userId: 2,
title: "title2",
body: "body2"
},
4:{
userId: 4,
title: "title4",
body: "body4"
}
}
然后您可以更新特定的"用户":
data[4]["body"] = "body4 updated value"
答案 4 :(得分:0)
一种最好的方法是使用array.map函数。