Javascript数组,里面有数组?

时间:2012-02-08 20:28:52

标签: javascript arrays json

我想存储一系列信息,每个信息包含一部分信息。所以我想要这样的东西:

var users = [{userID:1, userName:robert}, {userID:2, userName:daniel}]

然后检索变量:

users.userID // 1, 2
users.userName // robert, daniel

或者其他什么,我希望能够获得与userID相关的信息。

5 个答案:

答案 0 :(得分:1)

根据您的问题,我会考虑沿着以下

的行重做数组
var users = { 'id1' : { 'userName' :'robert'},
              'id2': { 'userName ': 'daniel'}};

alert(users.id1.userName);
alert( eval('users.id' + 1 + '.userName'));

答案 1 :(得分:0)

这可能会有所帮助:

var desiredUserID = 2;

var userList = [ {userID: 1, userName: "robert"}, {userID:2, userName:"daniel"} ];

for(x=0;x<=userList.length;x++) {

    if(userList[x].userID == desiredUserID){

         alert(userList[x].userName);   

    }

}

答案 2 :(得分:0)

这会生成一组用户ID:

 [{userID:1, userName:robert},
        {userID:2, userName:daniel}].map(function (x) { return x.userID; });

答案 3 :(得分:0)

是的,你可以通过各种方式做到这一点。假设你有:

var users = [{userID: 1, userName: robert}, {userID: 2, userName: daniel}];

要检索Robert的userIDuserName,您可以通过users[0].userIDusers[0].userName访问它们。

如果您希望通过users.userID[0]users.userName[0]检索它们,则需要以这种方式存储它们:

var users = {userID: [1, 2], userName: [robert, daniel]};

如果您问如何将第一个表单转换为第二个表单,请使用:

function transform(source) {
    var result = {};
    for (var i = 0; i < source.length; i++) {
        for (property in source[i]) {
            if (typeof result[property] == "undefined")
                result[property] = [];
            result[property].push(source[i][property]);
        }
    }
}

并以这种方式使用它:

var transformed_users = transform(users);

请注意,此转换功能特定于您的数据结构。

答案 4 :(得分:0)

这是一种方法

        var array1 = new Array(1,2,3,4);
        var array2 = new Array(8,9,10,11,12,13);
        var array3 = new Array( array1, array2);
        console.log(array1);
        console.log(array2);
        console.log(array3);

会给你正确的结果