![](/img/trans.png)
[英]In Javascript, how can I check the existence of a specific key/value pair nested inside another key/value pair?
[英]how can i add key value pair in array inside another array
// 我有以下响应:
[
{
"userId": 1,
"id": 3,
"title": "fugiat veniam minus",
"company": {
"name": "Deckow-Crist",
"catchPhrase": "Proactive didactic contingency",
"bs": "synergize scalable supply-chains"
}
},
{
"userId": 2,
"id": 4,
"title": "fugiat veniam minus",
"company": {
"name": "Deckow-Crist",
"catchPhrase": "Proactive didactic contingency",
"bs": "synergize scalable supply-chains"
}
},
]
//我想在两个地方添加这个键值对(“完成”:false),使它看起来像下面的响应:
[
{
"userId": 1,
"id": 3,
"title": "fugiat veniam minus",
**"completed": false**
"company": {
"name": "Deckow-Crist",
"catchPhrase": "Proactive didactic contingency",
"bs": "synergize scalable supply-chains"
**"completed": false**
}
},
{
"userId": 2,
"id": 4,
"title": "fugiat veniam minus",
**"completed": false**
"company": {
"name": "Deckow-Crist",
"catchPhrase": "Proactive didactic contingency",
"bs": "synergize scalable supply-chains"
**"completed": false**
}
},
]
..................................................... ..................................................... .....................
如果要保留原始数据并将数组视为immutable ,可以使用map()
和扩展运算符。
const users = [ { userId: 1, id: 3, title: "fugiat veniam minus", company: { name: "Deckow-Crist", catchPhrase: "Proactive didactic contingency", bs: "synergize scalable supply-chains", }, }, { userId: 2, id: 4, title: "fugiat veniam minus", company: { name: "Deckow-Crist", catchPhrase: "Proactive didactic contingency", bs: "synergize scalable supply-chains", }, }, ]; const revisedUsers = users.map(user => ({...user, completed: false, company: {...user.company, completed: false } })) console.log(` ----------------- Result -----------------`) console.log(revisedUsers);
.as-console-wrapper { max-height: 100%;important: top; 0; }
Array.map
可以解决您的问题。
const result = input.map(x => {
x.completed = false;
x.company = x.company.map(c => ({ ...c, completed: false }))
return x;
})
您可以查看已完成的演示:
const input = [{ "userId": 1, "id": 3, "title": "fugiat veniam minus", "company": [{ "name": "Deckow-Crist", "catchPhrase": "Proactive didactic contingency", "bs": "synergize scalable supply-chains" }, { "name": "Deckow-Crist", "catchPhrase": "Proactive didactic contingency", "bs": "synergize scalable supply-chains" }] }, { "userId": 2, "id": 4, "title": "fugiat veniam minus", "company": [{ "name": "Deckow-Crist", "catchPhrase": "Proactive didactic contingency", "bs": "synergize scalable supply-chains" }, { "name": "Deckow-Crist", "catchPhrase": "Proactive didactic contingency", "bs": "synergize scalable supply-chains" }] }, ]; const result = input.map(x => { x.completed = false; x.company = x.company.map(c => ({...c, completed: false })) return x; }) console.log(result);
您可以使用Array.prototype.map
将您的数组 map 转换为一个新数组,该数组循环遍历数组的每个项目,您可以从回调 ZC1C425268E68385D1AB5074C17A94F14 返回任何类型的数据以添加到新数组中。
const mappedArray = yourArray.map(user => {
user.completed = false;
user.company.completed = false;
return user;
});
const mappedArray = yourArray.map(user => {
return {
...user,
completed: false,
company: {
...user.company,
completed: false,
}
};
});
您可以通过多种方式来实现向对象数组添加属性。 考虑到您在数据变量中有响应,我将编写一个简单的数组 map function 来演示
data = data.map((obj) => ({ ...obj, company: { ...obj.company, completed: false }, completed: false }));
将...
运算符与Array.map
一起使用:
const arr = [ { "userId": 1, "id": 3, "title": "fugiat veniam minus", "company": { "name": "Deckow-Crist", "catchPhrase": "Proactive didactic contingency", "bs": "synergize scalable supply-chains" } }, { "userId": 2, "id": 4, "title": "fugiat veniam minus", "company": { "name": "Deckow-Crist", "catchPhrase": "Proactive didactic contingency", "bs": "synergize scalable supply-chains" } } ]; console.log(arr.map(arrObj => ({...arrObj, company: {...arrObj["company"], completed: false}, completed: false})));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.