gpt4 book ai didi

javascript - 将数组转换为对象?

转载 作者:行者123 更新时间:2023-12-02 17:50:07 25 4
gpt4 key购买 nike

我有一个包含多个对象的数组:

  var getUsers = function (){
allUsers = [];

$().SPServices({
operation: "GetUserCollectionFromSite",
completefunc: function(xData, Status){
var responseXML = $(xData.responseXML);
responseXML.find("User").each(function(){
allUsers.push({
id: $(this).attr("ID"),
name: $(this).attr("Name"),
domain: $(this).attr("LoginName"),
email: $(this).attr("Email"),
isAdmin: $(this).attr("IsSiteAdmin")
});
});
}
});
return allUsers;
}

我正在尝试更改它,以便 allUsers 不再使用数组,而是一个对象,并且顶级属性是 ID,每个 ID 属性都包含用户信息。

这是我尝试过的,但它有点导致我的应用程序由于某种原因而停止。

var getUsers = function (){
allUsers = {};

$().SPServices({
operation: "GetUserCollectionFromSite",
completefunc: function(xData, Status){
var responseXML = $(xData.responseXML);
responseXML.find("User").each(function(){
//This is pretty much where I'm at a lost
allUsers[$(this).attr("ID")]:{
name: $(this).attr("Name"),
domain: $(this).attr("LoginName"),
email: $(this).attr("Email"),
isAdmin: $(this).attr("IsSiteAdmin")
};
});
}
});
return allUsers;
}

我正在尝试获取一个结构如下的对象:

var allUsers = {
"68": {
id: 68,
name: 'mike',
domain: 'i: 0#.f | admembers | mike.ca',
email: 'mike.ca',
isAdmin: false
}
};

PS:抱歉标题不好。

最佳答案

您这里有一个拼写错误:

allUsers[$(this).attr("ID")] : {
^

: 应为 =,因为这是对键的分配。

allUsers[$(this).attr("ID")] = {

其他一切看起来都很好。除非您可以将 $(this) 分配给变量以节省 DOM 查找的时间。

var self = $(this);

关于javascript - 将数组转换为对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21438512/

25 4 0
文章推荐: javascript - Backbone /Marionette : templateHelpers not working
文章推荐: javascript - 加载未绑定(bind)到组件的蒙版,在父级 X、Y 移动时中断
文章推荐: javascript - jQuery 中的 onchange 事件
文章推荐: javascript - 未捕获的类型错误 : Object # has no method 'apply' error