2015-10-04 3 views
0

Я новичок в Javascript, и что-то странное происходит с моим JSON, который я не совсем понимаю. Я работаю с фиктивным объектом, который выглядит следующим образом:Множественные целочисленные значения в JSON автоматически добавляются

var data2 = { 
    incoming:12, 
    outgoing:15, 
    misc:3 
}; 

Теперь, когда я создаю переменную так:

var total = data2.incoming += data2.outgoing += data2.misc; 

И вызвать его в лог консоли, я получаю правильный ответ 30. Но когда я вызываю отдельные значения в журнале консоли, они кажутся автоматически складывающимися вместе, так что data2.incoming дает мне 30, data2.outgoing дает мне 18, а data2.misc дает мне 3. Очевидно, что значение для входящего включает все другие целочисленные значения, а исходящий - также входящее целочисленное значение.

Может кто-нибудь помочь мне понять, почему это так? Я переместил переменные вокруг как глобальные/локальные, и это не имело никакого значения. Спасибо заранее!

+0

x + = y такое же, как x = x + y, поэтому вы добавляете каждый в предыдущий var в свой код. – mplungjan

+0

Спасибо, глупый из меня, чтобы пропустить это! – Elster

ответ

3

Вы хотите добавить три целых числа, чтобы получить общее количество. Это будет делать только что:

var total = data2.incoming + data2.outgoing + data2.misc; 

Выражение у вас есть делает больше:

  1. это первый добавляет 3 и 15 и хранит 18 в data2.outgoing,
  2. затем добавляет 12 и 18, и сохраняет результат (30) в data2.incoming,
  3. , наконец, он присваивает 30 сумме.
+0

Спасибо за полезную информацию! Он работает сейчас :) – Elster

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