2013-08-22 2 views
1

Я пытаюсь подвести конкретное значение из массива JSON:Javascript - значения сумм из JSON

([{"DESPRO":"PLANILLA DE EMPLEADOS","ANIO":"2013","MES":"06","NROPER":"201306","PLAGRPCON":"3","GRUPO_CONCEPTO":"APORTES","CODCON":"3010 ","CONCEPTO":"ESSALUD ","VALOR":"106,1"}, 

{"DESPRO":"PLANILLA DE EMPLEADOS","ANIO":"2013","MES":"06","NROPER":"201306","PLAGRPCON":"2","GRUPO_CONCEPTO":"DESCUENTOS","CODCON":"2030 ","CONCEPTO":"ADELANTO DE QUINCENA ","VALOR":"350"}, 

{"DESPRO":"PLANILLA DE EMPLEADOS","ANIO":"2013","MES":"06","NROPER":"201306","PLAGRPCON":"2","GRUPO_CONCEPTO":"DESCUENTOS","CODCON":"2604 ","CONCEPTO":"ADE. MOVILIDAD 1ER","VALOR":"48"}, 

{"DESPRO":"PLANILLA DE EMPLEADOS","ANIO":"2013","MES":"06","NROPER":"201306","PLAGRPCON":"2","GRUPO_CONCEPTO":"DESCUENTOS","CODCON":"2605 ","CONCEPTO":"ADE. MOVILIDAD 2DO","VALOR":"56"}, 


EMPLEADOS","ANIO":"2013","MES":"06","NROPER":"201306","PLAGRPCON":"2","GRUPO_CONCEPTO":"DESCUENTOS","CODCON":"2090 ","CONCEPTO":"AFP-PRIMA DE SEGURO","VALOR":"16,27"}, .... etc etc 

В этом случае сумма в VALORs из массива и поместить в любой переменной в JavaScript.

Я получил этот код:

// some JS code 
for (var i in datos){ 
    var HABERES = parseInt(datos[i].VALOR, 10); 
    HABERES += HABERES; 

    alert(HABERES); 
} 

Когда сигнал тревоги идет, результат не правильный ..

Есть ли какие-либо проблемы (ы) с этим кодом?

Спасибо за ответы ..

+0

'HABERES + = HABERES;'. Почему вы добавляете значение к себе? –

+0

, чтобы увеличить его? Это неправильно? ... Я попытался создать другое значение ('var SUM + = HABERES'), но результат по-прежнему неверен. –

+0

Вопрос заключается в том, как обрабатывать массив объектов в JavaScript, чем в JSON. –

ответ

1

Должно быть что-то like;

var HABERES = 0; 
for (var i in datos){ 
    HABERES += parseInt(datos[i].VALOR, 10); 
    alert(HABERES); 
} 
+0

Я положил ваш 'alert (HABERES)' после того, как заработал и отлично работает :) ... В вашем случае результат равен 6! .. Спасибо –

1

Это трудно сказать, что вы на самом деле хотите, но я думаю, что это. Начните с HABERES в 0 и добавьте значения в цикле.

var HABERES = 0; 
for (var i in datos){ 
    HABERES += parseInt(datos[i].VALOR, 10); 

    console.log(HABERES); 
} 

http://jsfiddle.net/qGYTH/1/

0

Заменить , с .

затем parseFloat

var HABERES = 0; 
for (var i in datos){ 
HABERES += parseFloat(datos[i].VALOR.replace(',','.')); 
} 
alert(HABERES); 

HABERES.replace('.',','); если вы хотите запятая на результат.

javascript использует. как десятичный разделитель.

parseFloat возвращает также десятичные значения.

http://jsfiddle.net/qGYTH/3/ Взрывные тарелки с моим кодом.

Смежные вопросы