Как добавить значения в разные объекты в массиве? - PullRequest
0 голосов
/ 20 февраля 2020

Как получить доступ только к первой клавише @NOTIFICATION_OPENED?

Как можно суммировать оба значения @NOTIFICATION_OPENED?

Это мой AJAX запрос:

$.getJSON("myapiurl", function(notificationData) {
  $.each(notificationData.data, function(index, value) {
    if (value["@NOTIFICATION_OPENED"]) {
      var notificationOpened = value["@NOTIFICATION_OPENED"]
    } else 
      notificationOpened = 0;

    var val = {
      "notificationOpened": notificationOpened
    }
    _data.push(val)
  });
}

Это данные, которые я получаю из API, используя вышеуказанный запрос:

{
  "data": [{
    "date": 1577836800000,
    "@NOTIFICATION_SENT": 62629,
    "@NOTIFICATION_OPENED": 404
  }, {
    "date": 1577923200000,
    "@NOTIFICATION_OPENED": 734
  }]

Ответы [ 2 ]

1 голос
/ 20 февраля 2020

Как получить доступ только к первому ключу @NOTIFICATION_OPENED?

Просто возьмите первый элемент data, а затем примите значение @NOTIFICATION_OPENED. например:

var notification = {
    "data": [{
        "date": 1577836800000,
        "@NOTIFICATION_SENT": 62629,
        "@NOTIFICATION_OPENED": 404
    }, {
        "date": 1577923200000,
        "@NOTIFICATION_OPENED": 734
    }]
}

var firstNotificationData = notification.data[0]
var firstNotificationOpenedData = firstNotificationData["@NOTIFICATION_OPENED"]
console.log(firstNotificationOpenedData)

Как можно суммировать оба значения @NOTIFICATION_OPENED?

Вы можете использовать reduce для суммирования общего количества открытых уведомлений , например:

var notification = {
    "data": [{
        "date": 1577836800000,
        "@NOTIFICATION_SENT": 62629,
        "@NOTIFICATION_OPENED": 404
    }, {
        "date": 1577923200000,
        "@NOTIFICATION_OPENED": 734
    }]
}

var totalNotificationOpened = notification.data.reduce(function (acc, d) {
    return acc + d["@NOTIFICATION_OPENED"]
}, 0)

console.log(totalNotificationOpened)
0 голосов
/ 20 февраля 2020

Я добавил квадратную скобку, чтобы сделать ее действительной JSON:

const data = 
[
  {
    "date": 1577836800000,
    "@NOTIFICATION_SENT": 62629,
    "@NOTIFICATION_OPENED": 404
  },
  {
   "date": 1577923200000,
   "@NOTIFICATION_OPENED": 734
  }
 ]

let nSent   = data[0]["@NOTIFICATION_SENT"]
let nOpened = data[0]["@NOTIFICATION_OPENED"]
let mySum   = nSent+nOpened

alert(mySum)

Это выдаст предупреждение с суммой 63033

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...