繁体   English   中英

JavaScript数组声明方式的区别

[英]JavaScript arrays declaration ways difference

在JavaScript中,这可能是一个非常基本的问题,两者之间有什么区别?

var userDetails = {};  
var usersList = [];  

我正在阅读一篇文章,其中包含以下代码:

 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);  
}  

谢谢

这是一个非常基本的问题。

var o = {}

初始化一个空对象。 然后,分配其属性。

 var a = []

初始化一个空数组。 然后,将新创建的对象添加到数组中

a.push( o );

每次迭代都使用相同的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()); 

最好为每个循环使用一个新的空对象。

  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.

有关更多信息,请参见此处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