[英]JavaScript arrays declaration ways difference
This could be a pretty basic question, in JavaScript, what's difference between: 在JavaScript中,这可能是一个非常基本的问题,两者之间有什么区别?
var userDetails = {};
var usersList = [];
I was reading an article which had following code: 我正在阅读一篇文章,其中包含以下代码:
function GetSampleUsersList() {
var userDetails = {};
var usersList = [];
for (var i = 1; i <= 3; i++) {
userDetails["UserId"] = i;
userDetails["UserName"] = "User- " + i;
userDetails["Company"] = "Company- " + i;
usersList.push(userDetails);
}
return JSON.stringify(usersList);
}
Thanks 谢谢
This is a pretty basic question. 这是一个非常基本的问题。
var o = {}
initializes an empty object. 初始化一个空对象。 Then you assign its properties.
然后,分配其属性。
var a = []
initializes an empty array. 初始化一个空数组。 You then add the newly created object to the array
然后,将新创建的对象添加到数组中
a.push( o );
You are using for every iteration the same userDetails
, because you overwrite just the properties and while you have pushed the same object, you have always the same content for every element in the array. 每次迭代都使用相同的
userDetails
,因为您只覆盖属性,并且在推送相同的对象时,数组中每个元素的内容始终相同。
function GetSampleUsersList() { var userDetails = {}; var usersList = []; for (var i = 1; i <= 3; i++) { userDetails["UserId"] = i; userDetails["UserName"] = "User- " + i; userDetails["Company"] = "Company- " + i; usersList.push(userDetails); } return JSON.stringify(usersList); } console.log(GetSampleUsersList());
Better use a new empty object for every loop. 最好为每个循环使用一个新的空对象。
function GetSampleUsersList() { var userDetails; var usersList = []; for (var i = 1; i <= 3; i++) { userDetails = {}; // this is necessary userDetails["UserId"] = i; userDetails["UserName"] = "User- " + i; userDetails["Company"] = "Company- " + i; usersList.push(userDetails); } return JSON.stringify(usersList); } console.log(GetSampleUsersList());
var userDetails = {}; -- object notation in javascript
var usersList = []; is an array notation in javascript.
for more infomation refer here http://yuiblog.com/blog/2006/11/13/javascript-we-hardly-new-ya/ 有关更多信息,请参见此处http://yuiblog.com/blog/2006/11/13/javascript-we-hardly-new-ya/
function GetSampleUsersList() {
var userDetails = {}; //created an empty object userDetails
var usersList = []; //created an empty array userDetails
for (var i = 1; i <= 3; i++) { //looping to add property and value in object and for each iteration object is getting pushed into array at an index i.
userDetails["UserId"] = i;
userDetails["UserName"] = "User- " + i;
userDetails["Company"] = "Company- " + i;
usersList.push(userDetails); // pushing object {"UserId":i, "UserName":"User-i", "Company":"Company-i"} into array
}
return JSON.stringify(usersList); // Parsing the object into javascript string
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.