首页 > 解决方案 > 如何使用字符串点表示法访问嵌套对象

问题描述

如何使用字符串点表示法访问嵌套对象

我正在为反应创建一个表,

这个问题其实可以通过设置raw: true Sequelize 来解决,但是我不想破坏对象结构。

我通过columns.accessor指定对象键,但是当我想使用点表示法访问嵌套对象时,它返回一个未定义的值。

如何解决这个问题呢?

const orderDetails = [
    {
        "id": 3,
        "userID": 15,
        "user": {
            "id": 15,
            "firstName": "jhon",
            "lastName": "mayer",
            "email": "mayer@gmail.com",
            "createdAt": "2021-03-12T01:49:35.000Z",
            "updatedAt": "2021-03-12T01:49:35.000Z"
        }
    },
    {
        "id": 2,
        "userID": 14,
        "user": {
            "id": 14,
            "firstName": "Jhon",
            "lastName": "Doe",
            "email": "doe@gmail.com",
            "createdAt": "2021-03-07T08:23:16.000Z",
            "updatedAt": "2021-03-13T03:51:16.000Z"
        }
    }
];

const columns = [
  {title: 'User ID', accessor: 'userID'},
  {title: 'Email', accessor: 'user.email'} // user.email undefined
];
          
// mapping to React table
const rows = orderDetails.map(d => {
  return columns.map(col => d[col.accessor]);
})

console.log(rows)
// [ [ 15, undefined ], [ 14, undefined ] ]

标签: javascriptarraysjavascript-objects

解决方案


推荐阅读