代码之家  ›  专栏  ›  技术社区  ›  Adam Matan

Node.js:通过变量引用对象的内部属性

  •  0
  • Adam Matan  · 技术社区  · 6 年前

    我的问题

    > { a: { b: { c: 3 } } }
    { a: { b: { c: 3 } } }
    

    > x.a.b.c
    3
    

    我希望根据某些条件访问任意属性,例如,而不是访问 b 我想访问存储在 SOME_VARIABLE 变量:

    > x.a.{SOME_VARIABLE}.c
    3
    

    • STFW公司。可能不知道确切的术语。

    我的问题

    如何使用变量中定义的属性名动态引用对象属性?

    2 回复  |  直到 6 年前
        1
  •  1
  •   Atishay Jain    6 年前

    访问对象有多种方法,其中一种是 [] var object = { inside : '1' } 你可以这样访问它 object['inside']

    我在下面添加了一个示例

    var a = { b: { c: 1 } };
    
    var d = 'b';
    
    console.log(a[d]['c']);
    
        2
  •  1
  •   Rob Raisch    6 年前

    您还可以考虑使用类似 lodash

    例子:

    const _ = require('lodash')
    
    const target = {
      foo: {
        bar: {
          baz: [1, 2, 3]
        }
      }
    }
    
    console.log(_.get(target, 'foo.bar.baz.1')) // ==> 2
    
    console.log(_.get(target, 'foo.3.bar', 'DEFAULT')) // ==> DEFAULT
    
    if (_.has(target, 'foo.bar')) {
      // do something interesting
    }
    
    const newKey = 'blorg'
    
    _.put(target, `foo.bar.${newKey}`, 'hello?')
    
    /*
      target is now {
        foo: {
          bar: {
            baz: [1, 2, 3]
          },
          blorg: 'hello?'
        }
      }
    */