我有一个数组数组,没有任何元素具有正在生成的名称。每个子阵列将具有相同数量的元素,但子阵列的总数是可变的。例如,
var arrayAll = [
[a,b,c,d,e,f],
[g,h,i,j,k,l],
[m,n,o,p,q,r]
];
我希望能够从一个阵列中访问一个元素,即只是' j',但由于我只有数字,所以不确定是否有任何符号。我已经看到了几种访问嵌套数组的方法,但它们都依赖于具有我不具备的命名项的数组。
答案 0 :(得分:1)
您可以轻松地按编号访问项目,就好像它是一个多维数组:
var row = 2, // 3rd row - JS arrays are 0-indexed
item = 3, // 4th item
x = arrayAll[row][item];
alert(x); // "p"
答案 1 :(得分:1)
我猜他正在寻找的是一种访问每一行中相同列的方法。可以使用map函数完成:
var arrayAll = [
[a,b,c,d,e,f],
[g,h,i,j,k,l],
[m,n,o,p,q,r]
];
var oneColumn = arrayAll.map(function(row){ return row[3]});
// oneColumn = [d, j, p];
答案 2 :(得分:0)
您可以在任何深度动态执行,给定路径作为数组,并使用reducer:
var searchByPath = function(path, xs) {
return path.reduce(function(acc, k) {
return acc && acc[k]
},xs)
}
例如:
var xs = [
[1,2,3,4],
[5,6,7,8]
]
// xs[1][2]
searchByPath([1,2], xs) //=> 7
// xs[3][100]
searchByPath([3,100], xs) //=> undefined