我想检查数组中的每个 child 我可以用例如写得更好吗? lodash
test[1] && test[1][2] && test[1][2][3] && doSomething
最佳答案
使用 lodash 获取/检查路径有 3 种常用方法:
_。 get - 这将尝试根据路径获取值并在未找到该值时提供
default
_。 has - 如果找到路径,这会给你 bool 结果 _。 hasIn - 这就像 has 但也会检查路径是对象的直接属性还是继承属性
_。 result - 这将遍历路径并执行 any 函数以获取值或作为
<_.get
否则(不存在函数)
var data = [
[],
[
[],
[
'hello',
function(){ return 'foo'}
]
]
];
console.log('get:', _.get(data, '1.1.0'))
console.log('has:', _.has(data, '1.1.0'))
console.log('result:', _.result(data, '1.1.0'))
console.log('result:', _.result(data, '1.1.1'))
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.min.js"></script>
这里的共同点是它们都接受一个 path
作为参数,它可以做你想做的事。只需提供最深
路径,让这些方法为您检查/工作。
关于javascript - 如何更好地编写它,例如lodash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53523220/