javascript - 在 JavaScript 中测试稀疏数组元素的存在?

标签 javascript arrays multidimensional-array

测试多层结构中是否存在数组元素的最佳方法是什么?例如:

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/

相关文章:

javascript - 错误 : [jquery] function with wordpress

javascript - 如何在 JS 中最好地设计(代码方面)高度交互的网页

c - 来自简单 C 程序的奇怪行为

c - C 中的二维数组内存映射

python - 如何在 Python 中处理一小部分数据?

javascript - 这个 Lodash uniqBy 调用的 Ramda 等价物是什么?

javascript - 如何在更改元素后保留 Bootstrap 工具提示?

javascript - 在 Angular 6 app array.find 函数中找不到数组中的现有元素

c - 为什么 char* 在 C 中被视为与 char** 相同?

java - 动态二维数组