当我尝试从javascript中的嵌套数组访问元素时,为什么会变得未定义?

时间:2019-09-06 14:06:23

标签: javascript arrays multidimensional-array nested

我正在尝试从JavaScript中的多维数组访问元素。当我尝试使用变量从数组内部的数组访问元素时,结果是`path <- "data_raw/Products/Product.xlsx" combined_data <- excel_sheets(path) %>% map_df(~{ read_excel(path, sheet = .x, trim_ws = TRUE, col_types = c("text", "text", "numeric", "guess", "numeric", "guess", "numeric", "numeric", "numeric")) %>% colnames(combined_data) <- c("Promotion_Type", "Product", "New_Accounts", "New_Acct_Percent", "Total_Balances", "Percent_Balance", "Average_Balances", "Weighted_Average_Rate", "Margin")}) 。如果我使用数字而不是变量,我会得到结果。

undefined

2 个答案:

答案 0 :(得分:1)

由于数组的长度为3,而您的最后一个数组索引为2。您可以对其进行修改:

let arr = [[1,2,3],[4,5,6],[7,8,9]];
for(let i=0;i<arr.length;i++){
  console.log(arr[i][arr.length - 1]); // Note the -1
}

这将返回3, 6, 9

答案 1 :(得分:0)

如果要访问嵌套数组中的所有元素,则需要两个for循环,一个循环迭代第一级,另一个循环插入内部级。

let arr = [[1,2,3],[4,5,6],[7,8,9]];

for(let i=0; i < arr.length; i++) {
  //looping through the outer array
  console.log(arr[i])
  for(let j=0;j< arr[i].length;j++)
  {
    //looping through the inner arrays
    console.log(arr[i][j]);
  }
  
}