如何读取Javascript数组中的对象

时间:2011-12-13 06:34:08

标签: javascript arrays

我有包含User对象的Javascript数组。我从modelAttribute创建了这个数组。

var userList = '${userList}';     // userList is a spring model attribute

userList包含User个对象的列表。我正在访问它

for(i=0;i<userList.length;i++)
    {
        if(searchKey == "" || userList[i].indexOf(searchKey) != -1)
        {   
            $('#userTable').dataTable().fnAddData( [
                  userList[i].firstName,
                  userList[i].lastName,
                  userList[i].institution,
                  userList[i].email] );
        }   
    }

但我得到的值为undefined。最初我使用Ajax调用,它工作正常。

$.getJSON("lookup/users", {name:searchKey,userType:"requester"}, function(userList) {
// It works fine        
        for(i=0;i<userList.length;i++)
        {
            $('#userTable').dataTable().fnAddData( [
                  userList[i].firstName,
                  userList[i].lastName,
                  userList[i].institution,
                  userList[i].email] );
        }

    });

我现在如何访问它?

修改
console.log(“userList:”+ userList);给出

userList : [org.test.dto.UserDTO@11d1c59, org.test.dto.UserDTO@302f39, org.test.dto.UserDTO@16c57b1]   

4 个答案:

答案 0 :(得分:2)

var userList = '${userList}';

userList不是数组。

如果它应该呈现一个javascript数组,请取出引号。

答案 1 :(得分:1)

您的if条件应该是:

if(searchKey == "" || userList[i].firstName.indexOf(searchKey) != -1 || userList[i].lastName.indexOf(searchKey) != -1) {
    ...
}

答案 2 :(得分:0)

我在代码中看到错误。     for(i = 0; i&lt; users.length; i ++) 它有效吗?

答案 3 :(得分:0)

使用Ajax和Json将相同和存储的结果用于JS变量

userList = null; 
    $.getJSON("lookup/users", {name:"",userType:"requester"}, function(users) {
             userList = users;
         });