测试多层结构中是否存在数组元素的最佳方法是什么?例如:
if (typeof arr[a][b][c] === 'undefined') { ...do something... }
如果 [a] 或 [b] 不存在,我们将无法测试 [c]。
是否有下划线或 lodash 函数来处理这个问题?
最佳答案
如果你在很多地方需要它,你可以创建一个函数:
function get(obj, props) {
return props.reduce(function(x, p) { return x && x[p] ? x[p] : null }, obj)
}
if (get(arr, [a, b, c])) ...
适用于对象和数组:
var obj = [0, {a: [0, 'value', 2]}, 2]
get(obj, [1, 'a', 1]) //=> 'value'
get(obj, [1, 'a', 8]) //=> null
关于javascript - 在 JavaScript 中测试稀疏数组元素的存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45773371/