Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

How to add values to an empty array? I have tried the following but it is not working:

var student = [{}];
for (var i = 0; i < 5; i++) {
    student[i].name = i;
    student[i].id = "1";
    student.push(student[i]);
} 

var a = JSON.stringify(student);
alert(a);

It give output 6 time repeated last values not 5 time :

'[{"name":4,"id":"1"},{"name":4,"id":"1"},{"name":4,"id":"1"},{"name":4,"id":"1"},{"name":4,"id":"1"},{"name":4,"id":"1"}]'
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
171 views
Welcome To Ask or Share your Answers For Others

1 Answer

var student = [{}];

This creates a javascript array containing one empty object

student[i].name = i;
student[i].id = "1";

For i = 0, this alters that empty object.

student.push(student[i]);

You then push that altered object to the array it already exists in. You now have two identical values in the array.

Two items after first push. This is repeated five times.

Pushing an item adds it to the array. There's usually no point in pushing an element that's already in the array. Create a new object and push that. The array doesn't have to be pre-populated with an empty object to modify.

var student = [];
for (var i = 0; i < 5; i++) {
    student.push({
        name: i,
        id: '1'
    });
} 

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...