我有两个数组
dataArr
- 包含未知数量的数组和对象的数组,可能包含未知数量的数组和对象,依此类推。该数组还可能包含各种级别的属性(认为嵌套的JSON)indexArr
- 一个长度为n
的数组,其中包含用于访问dataArr
中特定项目的键如何在不创建新阵列的情况下检索,添加和更新dataArr[indexArr[0]][indexArr[1]][indexArr[2]]...[indexArr[n]]
中的值?
感兴趣的语言:javascript
和python
。
答案 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]);