无法访问Javascript中的数组数据

时间:2018-05-17 17:57:15

标签: javascript arrays

我仍然是编程和javascript的新手。我现在面临的问题是我无法访问数组内的数据。 这是我的代码片段

global.arr = [];
var id = 12;

for (var i=0; i<5; i++) {
   arr.push(id);
   id++;
}
console.log(arr);
console.log(arr[0]);

this is the console image

我的问题是,如何访问数据以及我在这里做错了什么?

以下是我目前的代码,它似乎仍然无法运作:

var arr = [];
var id = 12;

for (var i=0; i<5; i++) {
   arr.push(id);
   id++;
}
console.log(arr);
console.log(arr[0]);

4 个答案:

答案 0 :(得分:6)

编辑:再扩展一下:

global不是JavaScript对象。有 global objects ,但您可以通过window而不是global访问它们。只有在其他地方将global设置为window时,您的代码才有效。

除非您有充分的理由使用global(或window),否则只需使用varlet定义数组(以及其他变量)

&#13;
&#13;
let arr = [];
let id = 12;

for (let i=0; i<5; i++) {
   arr.push(id);
   id++;
}
console.log(arr);
console.log(arr[0]);
&#13;
&#13;
&#13;

答案 1 :(得分:2)

我相信global是您问题的根源。它在浏览器中使用window

时有效

window.arr = [];
var id = 12;

for (var i=0; i<5; i++) {
   arr.push(id);
   id++;
}
console.log(arr);
console.log(arr[0]);

但是,最好不要直接设置为window,而是使用var arr = []let arr = []

答案 2 :(得分:2)

对于全局数组,您不需要设置

global.arr = [];

只需设置一个let变量:

let arr = [];
var id = 12;

请参阅:Let

然后使用您的代码:

let arr = [];
var id = 12;

for (var i=0; i<5; i++) {
 arr.push(id);
 id++;
}
console.log(arr);
console.log(arr[0]);

答案 3 :(得分:1)

在函数外声明的变量变为GLOBAL。 你可以声明变量arr。

&#13;
&#13;
var arr = [];
var id = 12;
for (var i=0; i<5; i++) {
   arr.push(id);
   id++;
}
console.log(arr);
console.log(arr[0]);
&#13;
&#13;
&#13;