Использование функции Reduce для ответа JSON - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть следующий JSON:

{
    "meta": {
        "totalPages": 13
    },
    "data": [{
        "type": "articles",
        "id": "3",
        "attributes": {
            "title": "AAAAA",
            "body": "BBBB",
            "created": "2011-06-22T14:56:29.00z",
            "updated": "2011-06-22T14:56:28.00z"
        }
    }],
    "links": {
        "self": "http://example.com/articles?page[number]=3&page[size]=1",
        "first": "http://example.com/articles?page[number]=1&page[size]=1",
        "prev": "http://example.com/articles?page[number]=2&page[size]=1",
        "next": "http://example.com/articles?page[number]=4&page[size]=1",
        "last": "http://example.com/articles?page[number]=1&page[size]=1"
    }
}

Предположим, я получаю этот Json в качестве ответа от веб-сервера, есть ли способ как-то использовать redu () метод здесь?

Я пробовал как:

$.ajax({
  url:"http://...",
  type: "GET",
  headers:{"application/vnd+json"},
  success: function(data){
  var r = data.cells.reduce(function(array, object) {
    return array.concat(object.type);
   }, {});

  console.log(r);
 }
)};

Можно ли вообще использовать уменьшение здесь? Моя задача - использовать функцию Reduce для данного Json. Мой AJAX в порядке?

1 Ответ

0 голосов
/ 07 ноября 2019

Например, вы можете использовать reduce() для вычисления количества объектов данных, где type:"articles"

const response = {
    "meta": {
        "totalPages": 13
    },
    "data": [{
        "type": "articles",
        "id": "3",
        "attributes": {
            "title": "AAAAA",
            "body": "BBBB",
            "created": "2011-06-22T14:56:29.00z",
            "updated": "2011-06-22T14:56:28.00z"
        }
    },{
        "type": "articles",
        "id": "6",
        "attributes": {
            "title": "AAAAA",
            "body": "BBBB",
            "created": "2011-06-22T14:56:29.00z",
            "updated": "2011-06-22T14:56:28.00z"
        }
    },
    {
        "type": "articles",
        "id": "10",
        "attributes": {
            "title": "AAAAA",
            "body": "BBBB",
            "created": "2011-06-22T14:56:29.00z",
            "updated": "2011-06-22T14:56:28.00z"
        }
    }],
    "links": {
        "self": "http://example.com/articles?page[number]=3&page[size]=1",
        "first": "http://example.com/articles?page[number]=1&page[size]=1",
        "prev": "http://example.com/articles?page[number]=2&page[size]=1",
        "next": "http://example.com/articles?page[number]=4&page[size]=1",
        "last": "http://example.com/articles?page[number]=1&page[size]=1"
    }
}

const totalArticles = response.data.reduce((count, val)=>{
  if(val.type === 'articles') count++
  return count;
  }, 0)

console.log(`Total no. of articles : ${totalArticles}`); // Total no. of articles : 3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...