使用Lodash`_.get`使用括号表示法访问对象键

时间:2016-11-10 19:59:25

标签: javascript lodash

我有以下

const key = 'foo';
const test = { foo: { bar: 23 } };

我想使用lodash get来访问test[key].bar的值。

我想在第一个指示符上使用括号表示法......

_.get(test, '[key].bar'); // results in undefined

当然有办法......

5 个答案:

答案 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;
&#13;
&#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 );