对象映射数组返回未定义而不是实际对象



我有一个嵌套对象数组,我目前正在映射以返回对象数组。但不是得到实际的对象,我的预期结果的一部分是返回一个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"或者其他键

相关内容

  • 没有找到相关文章

最新更新