我有一个嵌套对象数组,我目前正在映射以返回对象数组。但不是得到实际的对象,我的预期结果的一部分是返回一个Undefined。我不知道为什么未定义是我的结果的一部分。我实际上需要知道为什么未定义是我的结果的一部分。有人能告诉我我做错了什么吗。由于
我的代码下面
const data = [
{
"US":
{
"listed": "2022-05-25",
"address": "Kingston road, New York",
"distance": "37.3 km",
"contact": {
"email": "abc@gmail.com"
},
}
},
{
"NG":
{
"listed": "2022-05-26",
"address": "road 1, Lagos",
"distance": "12.3 km",
"contact": {
"email": "def@gmail.com"
},
}
},
];
console.log(data.map((x, i)=>{
return (
x.US, x.NG )
}))
// OutPut Here below
// [
// undefined,
// {
// listed: '2022-05-26',
// address: 'road 1, Lagos',
// distance: '12.3 km',
// contact: { email: 'def@gmail.com' }
// }
// ]
// Instead of
// [
// {
// "listed": "2022-05-25",
// "address": "Kingston road, New York",
// "distance": "37.3 km",
// "contact": {
// "email": "abc@gmail.com"
// },
// },
// {
// listed: '2022-05-26',
// address: 'road 1, Lagos',
// distance: '12.3 km',
// contact: { email: 'def@gmail.com' }
// }
// ]
索引0中不存在NG。试一试…
data.map(x => (x.US ?? x.NG));
一旦你迭代一个对象(无论用什么语言或用什么函数),每次的值都会不同。在你的例子中,当i
为0时,你有"us",当i为1时,你有"ng"。如果我没理解错的话,你想要这样做:
const data = [
{
"US":
{
"listed": "2022-05-25",
"address": "Kingston road, New York",
"distance": "37.3 km",
"contact": {
"email": "abc@gmail.com"
},
}
},
{
"NG":
{
"listed": "2022-05-26",
"address": "road 1, Lagos",
"distance": "12.3 km",
"contact": {
"email": "def@gmail.com"
},
}
},
];
const x = Object.entries(data).map(([key, val])=>val);
console.log(x);
这个可以让你遍历键和值,不管值是什么,你都可以有"ILS"或者其他键