简体   繁体   English

JavaScript数组声明方式的区别

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM