如何读取 Javascript 数组中的对象

How to read objects within Javascript array

本文关键字:数组 对象 Javascript 何读取 读取      更新时间:2023-09-26

我有包含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]   
var userList = '${userList}';

userList不是一个数组。

如果它应该渲染一个javascript数组,请去掉引号。

您的if条件可能应该是:

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

我在你的代码中看到一个错误。 for(i=0; i <users.length;i++(有效吗?>

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

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