为了账号安全,请及时绑定邮箱和手机立即绑定

在 JavaScript 中重新组织字典中的数据

在 JavaScript 中重新组织字典中的数据

蓝山帝景 2023-10-20 16:37:39
我开始工作JavaScript并尝试一些基本的东西,所以我遇到了一个问题。这是我的dictionaryvar dic = {    'a':  {1:'alpha', 2:'beta', 3:'delta'},    'b' : {1:1, 2:2000, 3:50},    'c' : {1:-9, 2:2500, 3:51},    'd' : {1:3, 2:-1000, 3:56},    'e' : {1:-4, 2:2005, 3:-44}, }所以,我想重新排序数据,以便最终我有一个像这样的字典var sol = {   'alpha' : [1, -9, 3, -4],     'beta' : [2000, 2500, -1000, 2005],   'delta' : [50, 51, 56, -44], }a因此,我将in 中的值作为键dic,然后根据哪个索引a将相应的值b,c,d,e取出并放入数组中。这就是我开始做的事情:for(var i = 0; i<Object.keys(dic).length;i++){     for(var j=0; j<Object.keys(dic['a']).length; j++){      console.log(dic[i][j])    }}但后来我发现我无法真正访问信息dic[i][j],我完全迷失了。有人可以给我一些建议吗?
查看完整描述

3 回答

?
MMTTMM

TA贡献1869条经验 获得超4个赞

我开始工作JavaScript并尝试一些基本的东西,所以我遇到了一个问题。

这是我的dictionary


var dic = {

    'a':  {1:'alpha', 2:'beta', 3:'delta'},

    'b' : {1:1, 2:2000, 3:50},

    'c' : {1:-9, 2:2500, 3:51},

    'd' : {1:3, 2:-1000, 3:56},

    'e' : {1:-4, 2:2005, 3:-44}, 

}

所以,我想重新排序数据,以便最终我有一个像这样的字典


var sol = {

   'alpha' : [1, -9, 3, -4],  

   'beta' : [2000, 2500, -1000, 2005],

   'delta' : [50, 51, 56, -44], 

}

a因此,我将in 中的值作为键dic,然后根据哪个索引a将相应的值b,c,d,e取出并放入数组中。


这就是我开始做的事情:


for(var i = 0; i<Object.keys(dic).length;i++){ 

    for(var j=0; j<Object.keys(dic['a']).length; j++){

      console.log(dic[i][j])

    }

}

但后来我发现我无法真正访问信息dic[i][j],我完全迷失了。


有人可以给我一些建议吗?


查看完整回答
反对 回复 2023-10-20
?
慕斯709654

TA贡献1840条经验 获得超5个赞

你在迭代中走在正确的道路上。如果您使用 for/in 迭代对象,您可以看到您将拥有所需的所有信息:


let i = 1;

for (let x in dic) {

     console.log(dic[x][i])

     i++

}

所以第一次迭代会给你:


for (let x in dic) {

     console.log(dic[x][1])

}

控制台显示:


// alpha

// 1

// -9

// 3


查看完整回答
反对 回复 2023-10-20
?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

看起来我发帖速度很慢,但这将提供您正在寻找的内容......


var dic = {

  'a': {

    1: 'alpha',

    2: 'beta',

    3: 'delta'

  },

  'b': {

    1: 1,

    2: 2000,

    3: 50

  },

  'c': {

    1: -9,

    2: 2500,

    3: 51

  },

  'd': {

    1: 3,

    2: -1000,

    3: 56

  },

  'e': {

    1: -4,

    2: 2005,

    3: -44

  },

}


var dicKeys = Object.keys(dic);

var sol = {};

var newKeyList = Object.keys(dic.a);

var newValueList = Object.values(dic.a);

for (var newIndex = 0; newIndex < newKeyList.length; newIndex++) {

  var newKey = newKeyList[newIndex];

  var newValue = newValueList[newIndex];

  sol[newValue] = [];

  dicKeys.forEach(function(key) {

      if (key == 'a') {

        return;

      }

      sol[newValue].push(dic[key][newKey]);

  });

}

console.log(JSON.stringify(sol));


查看完整回答
反对 回复 2023-10-20
  • 3 回答
  • 0 关注
  • 89 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信