在for循环内外定义数组的区别

时间:2014-01-04 18:47:26

标签: javascript

标题已经清楚了,在for循环内部或外部创建数组之间的区别是什么。

我会举个例子。

 var studentsarray = [];

    for(var i = 0; i < 5; i++){

        var students = {
                id:i,
                roll:"9",
                age:13
        }//end students

        studentsarray.push(students);

        localStorage.setItem('veritabani', JSON.stringify(studentsarray));

    }//end for

    var aldim = $.parseJSON(localStorage.getItem('veritabani'));

    $.each(aldim, function(i,item){
        alert(item.id);
    });

如果我在for循环中定义,我无法到达所有元素,但如果我在for循环外定义,它只是显示的(id)的最后一个值。

你能解释一下原因吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

很少有观察结果:

  1. Javascript只有函数级别范围,因此在for循环中定义变量等同于在外部定义它。
  2. 但是,如果在for循环中
  3. ,变量赋值将多次发生
  4. 请注意JSON.stringify是多次按值设置studentarray,你是否真的想在for循环中执行此操作?
  5. 我想知道这是不是你的意思?

    var studentsarray = [];
    
    for(var i = 0; i < 5; i++){ 
       studentsarray.push({id: i, roll:"9", age:13 });
    }
    
    localStorage.setItem('veritabani', JSON.stringify(studentsarray));
    
    var aldim = $.parseJSON(localStorage.getItem('veritabani'));
    $.each(aldim, function(i,item){
        alert(item.id);
    });