Javascript 名称的对象/拆分为单独的对象或数组

Javascript 名称的对象/拆分为单独的对象或数组,javascript,arrays,Javascript,Arrays,我正在寻找一些关于我应该如何考虑做这件事的一般性建议 我需要做的是获取一个具有“用户名”的对象:userId,等等。。并将它们拆分为单独的对象或数组,每个对象仅包含以某个字母开头的用户名 所以现在我有: allusers = {"adam292":10302, "alex92":12902, "briannv999":10302, "sandra127":11102, "sam11":100 } 但我需要将它们拆分为自己的对象或数组,如下所示: ausers = { "adam292":10

我正在寻找一些关于我应该如何考虑做这件事的一般性建议

我需要做的是获取一个具有“用户名”的对象:userId,等等。。并将它们拆分为单独的对象或数组,每个对象仅包含以某个字母开头的用户名

所以现在我有:

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分组依据”或类似内容。