【问题标题】:Accessing the value of multidimensional array java script (TypeError: Cannot read property '0' of undefined)访问多维数组java脚本的值(TypeError:无法读取未定义的属性'0')
【发布时间】:2018-07-01 18:41:38
【问题描述】:

我在通过参数访问多维数组值时遇到问题,当我使用 repl 运行它时,没有问题,但是当我使用 npm 5.6.0 和节点 8.4.0 运行它时,它显示了正确的值/我想要的输出('Christ'),但之后,它显示此输出并出现以下错误:

node exercise-2.js

[ [ 'Christ', 'Evans', 'Male', 1982 ],[ 'Robert', 'Downey', 'Male' ] ]
Christ
/Users/exercise-2.js:3

console.log(arr[0][0]);
                   ^
TypeError: Cannot read property '0' of undefined
at changeMe (/Users/exercise-2.js:3:21)
at Object.<anonymous> (/Users/exercise-2.js:47:1)
at Module._compile (module.js:573:30)
at Object.Module._extensions..js (module.js:584:10)
at Module.load (module.js:507:32)
at tryModuleLoad (module.js:470:12)
at Function.Module._load (module.js:462:3)
at Function.Module.runMain (module.js:609:10)
at startup (bootstrap_node.js:158:16)
at bootstrap_node.js:598:3

这是代码:

function changeMe(arr) {
  console.log(arr);
  console.log(arr[0][0]);
}


// TEST CASES
changeMe([['Christ', 'Evans', 'Male', 1982], ['Robert', 'Downey', 'Male']]); 

【问题讨论】:

  • 无法重现您的错误。如果您认为您可以在 changeMe 之外访问 arr(除非您将其分配给 var arr),请三思。
  • 该错误表明您传递的arr0th 索引处不包含任何内容。你能告诉我们你得到这个错误的输入吗?
  • 这是我运行代码时的截图:imgur.com/a/Xdl07
  • 不知道问题出在哪里,是npm还是node
  • 对不起,我想是因为我调用了空数组的函数。它导致了问题。

标签: javascript arrays node.js multidimensional-array arguments


【解决方案1】:

在您给我们的示例中,访问第 0 和第 1 个索引都可以正常工作。我在这里没有看到任何问题。有什么问题?

function changeMe(arr) {
  console.log(arr[0][0]);
  console.log(arr[0][1]);
  return 0;
}


changeMe([['Christ', 'Evans', 'Male', 1982], ['Robert', 'Downey', 'Male']]); 

【讨论】:

  • 抱歉,我的问题中缺少信息。我刚刚更新了这个问题。所以基本上程序显示了正确的输出,但之后它显示了我上面提到的错误。不知道错误是从哪里来的,是npm还是node还是其他的东西。
  • 不,它与 npm 或节点无关。你给了它不好的输入。从我看到的输出来看,您很可能在不止一个地方调用changeMe。查找对changeMe 的所有调用,并确保它们都得到传入的多维数组
  • 对了,我忘了我把它叫做空数组。感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
相关资源
最近更新 更多