简体   繁体   English

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

[英]Accessing nested element by index array

I have two arrays 我有两个数组

  • dataArr - An array containing an unknown number of arrays and objects that may contain an unknown number of arrays and objects and so on. dataArr包含未知数量的数组和对象的数组,可能包含未知数量的数组和对象,依此类推。 The array may also contain properties at various levels (think nested JSON) 该数组可能还包含不同级别的属性(请考虑嵌套JSON)
  • indexArr - An array of length n containing the keys to access a specific item in dataArr indexArr长度为n的数组,包含用于访问dataArr特定项目的dataArr

How would I go about retrieving, adding and updating values in dataArr[indexArr[0]][indexArr[1]][indexArr[2]]...[indexArr[n]] without creating a new array? 我如何在不创建新数组的情况下检索,添加和更新dataArr[indexArr[0]][indexArr[1]][indexArr[2]]...[indexArr[n]]

Languages of interest: javascript and python . 感兴趣的语言: javascriptpython

Create recursive function that you pass in indexes array and origin array. 创建在索引数组和原始数组中传递的递归函数。

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]);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM