通过索引数组访问嵌套元素

时间:2017-03-21 11:34:16

标签: javascript python arrays

我有两个数组

  • dataArr - 包含未知数量的数组和对象的数组,可能包含未知数量的数组和对象,依此类推。该数组还可能包含各种级别的属性(认为嵌套的JSON)
  • indexArr - 一个长度为n的数组,其中包含用于访问dataArr中特定项目的键

如何在不创建新阵列的情况下检索,添加和更新dataArr[indexArr[0]][indexArr[1]][indexArr[2]]...[indexArr[n]]中的值?

感兴趣的语言:javascriptpython

1 个答案:

答案 0 :(得分:0)

创建在索引数组和原始数组中传递的递归函数。

function getItem(data, indexes) {
    if (indexes.length) {
        var index = indexes.shift();

        // if index exist - dive deeper, else return indicator that failed.
        if (typeof data[index] !== 'undefined') {
            return getItem(data[index], indexes);
        } else {
            return null;
        }
    }

    // will be returned when no more indexes passed - last element reached
    return data;
}

getItems(dataArr, [1, 5, 9, 'a', 'sum', 99]);