【发布时间】:2020-01-28 20:23:24
【问题描述】:
我正在尝试创建一个将值存储在字典中的 for 循环,并且每次迭代都会将此字典附加到列表中。
已经尝试使用 push() 和索引列表进行附加,但没有成功。
json = {
"MUNICIPIOS":[
{"ATRIBUTOS":["atrib1","atrib2","atrib3"],"VALORES": [10, 100, 1000]},
{"ATRIBUTOS":["atrib1","atrib2","atrib3"],"VALORES": [20, 200, 2000]},
{"ATRIBUTOS":["atrib1","atrib2","atrib3"],"VALORES": [30, 300, 3000]},
{"ATRIBUTOS":["atrib1","atrib2","atrib3"],"VALORES": [40, 400, 4000]}
]
};
var atributos = json["MUNICIPIOS"][0]["ATRIBUTOS"];
var municipios = json["MUNICIPIOS"];
var dimensoes = [];
var dicionario = {label:"", values:[]};
for (var atr = 0; atr < atributos.length; atr++){
dicionario.label = atributos[atr];
valores = [];
for (var mun=0; mun < municipios.length; mun++){
valores.push(municipios[mun]["VALORES"][atr]);
dicionario.values = valores;
}
//dimensoes.push(dicionario);
dimensoes[atr] = dicionario;
}
console.log(dimensoes);
结果并不如我所愿:
// Actual result
[
{ label: 'atrib3', values: [ 1000, 2000, 3000, 4000 ] },
{ label: 'atrib3', values: [ 1000, 2000, 3000, 4000 ] },
{ label: 'atrib3', values: [ 1000, 2000, 3000, 4000 ] }
]
我需要这个:
// Expected result
[
{ label: 'atrib1', values: [ 10, 20, 30, 40 ] },
{ label: 'atrib2', values: [ 100, 200, 300, 400 ] },
{ label: 'atrib3', values: [ 1000, 2000, 3000, 4000 ] }
]
我做错了什么?
【问题讨论】:
-
把
dicionario = {label:"", values:[]};作为for循环的第一行
标签: javascript dictionary for-loop