无法从lodash访问对象:错误无法访问对象元素

时间:2019-01-17 10:20:54

标签: javascript lodash

export default {
  configuration:
  {
    site: {
      control:[
        api: {
          'list': '/api/v1/config/sites',
          'post': '/api/v1/config/sites/',
          'patch': '/api/v1/config/sites/',
          'delete': '/api/v1/config/sites/'
        }
      ],
    },
}

我正在尝试通过_.get(configuration, ['site','control','api','list'])

进行访问

如果我有什么问题请帮助我。

2 个答案:

答案 0 :(得分:1)

control是一个数组,因此如果不先指定所需数组中的哪个索引,就无法访​​问control.api。相反,您需要这样做:

_.get(configuration, ['site','control', '0', 'api','list'])

答案 1 :(得分:1)

第一件事是您的configuration结构是错误的,恰好在control:[api: {...}]中,数组不像文字对象那样支持键/值结构,因此您应该用{{1}包裹该项目},就像{}一样访问它:

control:[{api: {...}}]

或将您的 _.get(configuration, ['site', 'control', '0', 'api', 'list']) 值转换为类似control的对象

通过control:{api: {...}}api键换行的完整示例

{}
let configuration = {
  site: {
    control: [{
      api: {
        'list': '/api/v1/config/sites',
        'post': '/api/v1/config/sites/',
        'patch': '/api/v1/config/sites/',
        'delete': '/api/v1/config/sites/'
      }
    }],
  }
}
var dumb = _.get(configuration, ['site','control','0','api','list'])

document.getElementById("key").innerHTML = dumb
console.log(_.get(configuration, ['site', 'control', '0', 'api', 'list']))