Javascript 名称的对象/拆分为单独的对象或数组
我正在寻找一些关于我应该如何考虑做这件事的一般性建议 我需要做的是获取一个具有“用户名”的对象:userId,等等。。并将它们拆分为单独的对象或数组,每个对象仅包含以某个字母开头的用户名 所以现在我有:Javascript 名称的对象/拆分为单独的对象或数组,javascript,arrays,Javascript,Arrays,我正在寻找一些关于我应该如何考虑做这件事的一般性建议 我需要做的是获取一个具有“用户名”的对象:userId,等等。。并将它们拆分为单独的对象或数组,每个对象仅包含以某个字母开头的用户名 所以现在我有: allusers = {"adam292":10302, "alex92":12902, "briannv999":10302, "sandra127":11102, "sam11":100 } 但我需要将它们拆分为自己的对象或数组,如下所示: ausers = { "adam292":10
allusers = {"adam292":10302, "alex92":12902, "briannv999":10302, "sandra127":11102, "sam11":100 }
但我需要将它们拆分为自己的对象或数组,如下所示:
ausers = { "adam292":10302, "alex92":12902 }
busers = { "briannv999":10302 }
susers = {"sandra127":11102, "sam11":1002 }
{
a: [["adam292", 10302], ["alex92", 12902]],
b: [["briannv999", 10302]],
s: [["sandra127", 11102], ["sam11", 100]]
}
我这样做是因为我需要显示一个对话框,其中还显示字母a-z,这将是您可以单击以显示以该字母开头的用户的链接
非常感谢您的任何建议 您可以在循环中执行此操作:
letter2users = {}
for (var uname in allusers) {
if (!letter2users[uname[0]]) {
letter2users[uname[0]] = [];
}
letter2users[uname[0]].push(allusers[uname]);
}
# access this by using letter2users.a lettersusers.b
您可以在循环中执行此操作:
letter2users = {}
for (var uname in allusers) {
if (!letter2users[uname[0]]) {
letter2users[uname[0]] = [];
}
letter2users[uname[0]].push(allusers[uname]);
}
# access this by using letter2users.a lettersusers.b
以下是一种方法: 在对象中循环,我们抓取第一个字母,检查用户对象中是否有该字母的键,如果没有,我们制作一个并为其分配一个数组(包含用户数据),如果是,则推送到该数组:
var users = {};
for (var user in allusers) {
var firstLetter = user.slice(0,1);
if (users[firstLetter]) {
users[firstLetter].push([user, allusers[user]]);
}
else {
users[firstLetter] = [[user, allusers[user]]];
}
}
上面使用示例对象的代码输出如下:
ausers = { "adam292":10302, "alex92":12902 }
busers = { "briannv999":10302 }
susers = {"sandra127":11102, "sam11":1002 }
{
a: [["adam292", 10302], ["alex92", 12902]],
b: [["briannv999", 10302]],
s: [["sandra127", 11102], ["sam11", 100]]
}
以下是一种方法: 在对象中循环,我们抓取第一个字母,检查用户对象中是否有该字母的键,如果没有,我们制作一个并为其分配一个数组(包含用户数据),如果是,则推送到该数组:
var users = {};
for (var user in allusers) {
var firstLetter = user.slice(0,1);
if (users[firstLetter]) {
users[firstLetter].push([user, allusers[user]]);
}
else {
users[firstLetter] = [[user, allusers[user]]];
}
}
上面使用示例对象的代码输出如下:
ausers = { "adam292":10302, "alex92":12902 }
busers = { "briannv999":10302 }
susers = {"sandra127":11102, "sam11":1002 }
{
a: [["adam292", 10302], ["alex92", 12902]],
b: [["briannv999", 10302]],
s: [["sandra127", 11102], ["sam11", 100]]
}
这是一个典型的“groupBy”问题,其中要分组的维度由名称的第一个字符定义。在SO或其他地方搜索“JavaScript分组依据”或类似内容。这是典型的“分组依据”问题,其中要分组的维度由名称的第一个字符定义。在SO或其他地方搜索“JavaScript分组依据”或类似内容。