我有以下
const key = 'foo';
const test = { foo: { bar: 23 } };
我想使用lodash get
来访问test[key].bar
的值。
我想在第一个指示符上使用括号表示法......
_.get(test, '[key].bar'); // results in undefined
当然有办法......
答案 0 :(得分:14)
您需要将key
的值放入路径字符串中:
_.get(test, key + '.bar');
在ES2015中,您可以使用template literal(插值字符串):
_.get(test, `${key}.bar`);
答案 1 :(得分:12)
您可以传递数组来定义评估路径。
这是解决问题的一个非常干净的解决方案:
const test = {foo: {bar: 23}}
const key = 'foo'
console.log(_.get(test, [key, 'bar'])) // 23

<script src='https://cdn.jsdelivr.net/lodash/4.16.6/lodash.min.js'></script>
&#13;
答案 2 :(得分:0)
const test = { foo: { bar: 23 } };
const key = 'foo';
const search = key + '.bar';
const result = _get(test, search);
答案 3 :(得分:0)
这是一个使用全局变量的提案,用括号括起来。
location {
try_files $uri $uri/ /index.php?q=$uri$args
}
答案 4 :(得分:0)
在获取之前解析JSON
JSON.parse(<YOUR JSON String or Obj>)
const test = { foo: { bar: 23 } };
const key = 'foo';
const result = _get(JSON.parse(test), key );