如何在嵌套对象中推送响应
How to push response in nested onject
我有一个嵌套数据,我试图在其中推送从服务器获得的响应,
我的数据是:
let d = [{
"dashId": 3,
"dashName": "one",
"dashData": []
},
{
"dashId": 4,
"dashName": "two",
"dashData": [{
"nestedId": 1,
"nestedData": "how are you"
}]
}
]
下面是我要推送的数据
let res = [{
"nestedId": 11,
"nestedData": "I am fine"
}]
我做的是:-
let dd = d.map(li => {
if (li.dashId === 3) {
li.dashData.push(res)
}
})
console.log(dd)
我得到未定义的输出
[ undefined, undefined ]
Array.map
函数创建一个新数组,其中填充了对调用数组中的每个元素调用提供的函数的结果。因此 map
中的回调应该 return 一个项目,并且在您的代码中,回调中没有 returned。
在你的情况下,最好按如下方式使用 Array.forEach
。
const d = [{
"dashId": 3,
"dashName": "one",
"dashData": []
},
{
"dashId": 4,
"dashName": "two",
"dashData": [{
"nestedId": 1,
"nestedData": "how are you"
}]
}
];
const res = [{
"nestedId": 11,
"nestedData": "I am fine"
}];
d.forEach(li => {
if (li.dashId === 3) {
li.dashData.push(...res)
}
});
console.log(d);
您只需要在 map
回调中 return li
:
let dd = d.map(li => {
if (li.dashId === 3) {
li.dashData.push(res)
}
return li
})
我不确定你需要什么,但我认为 res
不应该是一个数组:
const res = {
"nestedId": 11,
"nestedData": "I am fine"
};
我有一个嵌套数据,我试图在其中推送从服务器获得的响应,
我的数据是:
let d = [{
"dashId": 3,
"dashName": "one",
"dashData": []
},
{
"dashId": 4,
"dashName": "two",
"dashData": [{
"nestedId": 1,
"nestedData": "how are you"
}]
}
]
下面是我要推送的数据
let res = [{
"nestedId": 11,
"nestedData": "I am fine"
}]
我做的是:-
let dd = d.map(li => {
if (li.dashId === 3) {
li.dashData.push(res)
}
})
console.log(dd)
我得到未定义的输出
[ undefined, undefined ]
Array.map
函数创建一个新数组,其中填充了对调用数组中的每个元素调用提供的函数的结果。因此 map
中的回调应该 return 一个项目,并且在您的代码中,回调中没有 returned。
在你的情况下,最好按如下方式使用 Array.forEach
。
const d = [{
"dashId": 3,
"dashName": "one",
"dashData": []
},
{
"dashId": 4,
"dashName": "two",
"dashData": [{
"nestedId": 1,
"nestedData": "how are you"
}]
}
];
const res = [{
"nestedId": 11,
"nestedData": "I am fine"
}];
d.forEach(li => {
if (li.dashId === 3) {
li.dashData.push(...res)
}
});
console.log(d);
您只需要在 map
回调中 return li
:
let dd = d.map(li => {
if (li.dashId === 3) {
li.dashData.push(res)
}
return li
})
我不确定你需要什么,但我认为 res
不应该是一个数组:
const res = {
"nestedId": 11,
"nestedData": "I am fine"
};