【发布时间】:2018-06-19 12:09:38
【问题描述】:
我正在尝试在本地存储中保存一个具有一个数组和一个 int 的对象。
var test = potenciaFacturaService.getPotencia(JSON.parse(getVariable("facturas")),null,getVariable("tipo_contrato"));
console.log(test);
var new_facturas = {
info: test,
error:0
};
console.log(new_facturas);
setVariable("new_facturas", JSON.stringify(new_facturas));
我的test 变量在我的服务中调用该方法时获取一个数组,我尝试使用方法setVariable 保存对象,该方法只调用我想要保存在我的localStorage 中的数据。
打印new_facturas 的值时,这是输出
{info: Array(0), error: 0}
error:0
info:Array(15)
0:{id: "776142", kwh: 0}
1:{id: "1269777", kwh: 7045}
2:{id: "887831", kwh: 0}
3:{id: "562951", kwh: 0}
4:{id: "390243", kwh: 1995}
5:{id: "669372", kwh: 0}
6:{id: "1019550", kwh: 0}
7:{id: "469265", kwh: 0}
8:{id: "1145145", kwh: 0}
9:{id: "253231", kwh: 0}
10:{id: "150663", kwh: 9191}
11:{id: "318047", kwh: 0}
12:{id: "119228", kwh: 0}
13:{id: "93050", kwh: 399.999}
14:{id: "201014", kwh: 23}
但是在检查 localStorage 时我有这个。
{info: [], error: 0}
error:0
info:[]
空数组,有人可以帮我解决这个问题吗?
编辑。添加getPotencia
this.getPotencia= function(facturas, id,tipocontrato){
console.log(facturas);
console.log(id);
console.log(tipocontrato);
var potencias = [];
var flag;
filtrar();
function filtrar(){
Object.entries(facturas).forEach(([key,val])=>{
if (key=="info"){
Object.entries(val).forEach(([key,valor])=>{
//console.log(valor.id);
$http({
url:'http://api',
method:"POST",
data:{id_factura:valor.id, tipo_contrato:tipocontrato},
headers:{
"Content-Type":"application/json; charset=utf-8"
}
})
.then(function(response){
//console.log(response.data);
if (response.data.error==0){
//console.log(response.data.factura.length);
var suma=0;
var id;
if (response.data.factura.length>1){
for (var i=0;i<response.data.factura.length;i++){
// console.log(response.data.factura[i].kwh);
suma = suma + parseFloat(response.data.factura[i].kwh);
id = response.data.factura[1].factura_id;
}
if (id==valor.id){
console.log(valor.kwh=suma);
console.log(valor);
potencias.push({
id: valor.id,
kwh:suma
});
}
}
if (response.data.factura.length==1){
if (response.data.factura[0].factura_id==valor.id){
valor.kwh = response.data.factura[0].kwh;
potencias.push({
id: valor.id,
kwh:parseFloat(response.data.factura[0].kwh)
});
}
}
}
})
})
console.log(val);
console.log(potencias);
agregar(potencias);
}
})
}
function agregar(facturas){
console.log("agregando");
console.log(typeof facturas);
for (var i=0; i<facturas.length;i++){
console.log(facturas[i]);
}
}
return potencias;
}
【问题讨论】:
-
// 存储 localStorage.setItem("lastname", "Smith"); // 获取 document.getElementById("result").innerHTML = localStorage.getItem("lastname");
-
我在 localStorage 上保存了更多数据,这是我唯一无法保存的数据
-
info: Array(0)... 和info:Array(15)... 所以,可能异步发生了一些事情 -
添加了代码@Satpal
-
数组需要初始化并随后使用括号“[]”更新您的 JSON 文件的结构似乎不正确。
标签: javascript angularjs json