访问没有命名元素的嵌套数组项

时间:2014-12-09 21:51:31

标签: javascript arrays

我有一个数组数组,没有任何元素具有正在生成的名称。每个子阵列将具有相同数量的元素,但子阵列的总数是可变的。例如,

var arrayAll = [
    [a,b,c,d,e,f],
    [g,h,i,j,k,l],
    [m,n,o,p,q,r]
];

我希望能够从一个阵列中访问一个元素,即只是' j',但由于我只有数字,所以不确定是否有任何符号。我已经看到了几种访问嵌套数组的方法,但它们都依赖于具有我不具备的命名项的数组。

3 个答案:

答案 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