3 回答

TA貢獻(xiàn)1869條經(jīng)驗(yàn) 獲得超4個(gè)贊
我開(kāi)始工作JavaScript并嘗試一些基本的東西,所以我遇到了一個(gè)問(wèn)題。
這是我的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},
}
所以,我想重新排序數(shù)據(jù),以便最終我有一個(gè)像這樣的字典
var sol = {
'alpha' : [1, -9, 3, -4],
'beta' : [2000, 2500, -1000, 2005],
'delta' : [50, 51, 56, -44],
}
a因此,我將in 中的值作為鍵dic,然后根據(jù)哪個(gè)索引a將相應(yīng)的值b,c,d,e取出并放入數(shù)組中。
這就是我開(kāi)始做的事情:
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])
}
}
但后來(lái)我發(fā)現(xiàn)我無(wú)法真正訪(fǎng)問(wèn)信息dic[i][j],我完全迷失了。
有人可以給我一些建議嗎?

TA貢獻(xiàn)1840條經(jīng)驗(yàn) 獲得超5個(gè)贊
你在迭代中走在正確的道路上。如果您使用 for/in 迭代對(duì)象,您可以看到您將擁有所需的所有信息:
let i = 1;
for (let x in dic) {
console.log(dic[x][i])
i++
}
所以第一次迭代會(huì)給你:
for (let x in dic) {
console.log(dic[x][1])
}
控制臺(tái)顯示:
// alpha
// 1
// -9
// 3

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超6個(gè)贊
看起來(lái)我發(fā)帖速度很慢,但這將提供您正在尋找的內(nèi)容......
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));
添加回答
舉報(bào)