【问题标题】:print object in a array [closed]在数组中打印对象[关闭]
【发布时间】:2020-06-30 21:39:38
【问题描述】:

我有一个这样的 json api:

{

    "data": [
            {
            "carrier" : "abc",
            "extra": {

                "date": "1970-01-01" 

            },
            }
            {
            "carrier" : "abc",
            "extra": {

                "date": "1970-01-01" 

            },
            }
    ]
}

那我如何在地图函数中使用datecarrier

我正在使用 reactjs

【问题讨论】:

  • 以上代码是单个对象,不需要映射并且data:[key:vaue] 无效。数组没有键值对。请检查你的对象
  • @prasanth 已编辑
  • 那么你想从map函数中得到什么样的数据呢?

标签: javascript reactjs api


【解决方案1】:
const dataObj = {
  data: [
    {
      carrier: "abc",
      extra: {
        date: "1970-01-01"
      }
    },
    {
      carrier: "abc",
      extra: {
        date: "1970-01-01"
      }
    }
  ]
};

const dateArr = dataObj.data.map(obj => {
  return {
    date : obj.extra?.date,
    carrier : obj.carrier,
  }
});

dateArr

[
  { carrier: "abc", date: "1970-01-01" },
  { carrier: "abc", date: "1970-01-01" }
]

【讨论】:

  • 抱歉,更新了问题。
  • 但报错:TypeError: Cannot read property 'date' of undefined
【解决方案2】:
const obj = {
  "data": [
           {
            "carrier" : "abc",
            "extra": {
               "date": "1970-01-01" 
            },
            }
            {
            "carrier" : "abc",
            "extra": {

                "date": "1970-01-01" 

            },
            }
  ]
}

const newArray = object.data.map(ele => {
  return {
    carrier: ele.carrier,
    date: ele.extra && ele.extra.date
  };
})

// Result
[
  { carrier: "abc", date: "1970-01-01" },
  { carrier: "abc", date: "1970-01-01" }
]

【讨论】:

  • 但报错:TypeError: Cannot read property 'date' of undefined
  • 我修改了代码来解决 extra 未定义的情况。
  • 请您解释一下原因。
  • 当然。 data 中的某些对象没有extra 键。在读取date 属性之前,我添加了&& 运算符来检查extra 键是否存在。
猜你喜欢
  • 1970-01-01
  • 2021-08-17
  • 2012-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-20
相关资源
最近更新 更多