[英]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) 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
. 感兴趣的语言:
javascript
和python
。
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.