Как посчитать количество определенных c элементов в объекте? - PullRequest
1 голос
/ 09 января 2020

У меня есть набор предметов fruitItems, который выглядит следующим образом:

[
    {
        "name": "banana",
        "origID": "7064012136"
    },
    {
        "name": "apple",
        "origID": "8390108418"
    },
    {
        "name": "pineapple",
        "origID": "8317598430"
    },
    {
        "name": "banana",
        "origID": "8395091043"
    },
    {
        "name": "orange",
        "origID": "8391923474"
    }
]

Как мне получить число banana в этом списке? Я попытался сделать это:

fruitItems.name.filter(x => x === "banana").length;

Но он выдает ReferenceError: fruitItems is not defined, даже если он определен.

Ответы [ 2 ]

4 голосов
/ 09 января 2020

Более чистый раствор:)

const fruits = [{
  "name": "banana",
  "origID": "7064012136"
}, {
  "name": "apple",
  "origID": "8390108418"
}, {
  "name": "pineapple",
  "origID": "8317598430"
}, {
  "name": "banana",
  "origID": "8395091043"
}, {
  "name": "orange",
  "origID": "8391923474"
}];


const count = fruits.reduce((acc, {
  name
}) => name === 'banana' ? acc + 1 : acc, 0); //2

console.log(count)
4 голосов
/ 09 января 2020

Синтаксическая коррекция:

const data = [{
    "name": "banana",
    "origID": "7064012136"
  },
  {
    "name": "apple",
    "origID": "8390108418"
  },
  {
    "name": "pineapple",
    "origID": "8317598430"
  },
  {
    "name": "banana",
    "origID": "8395091043"
  },
  {
    "name": "orange",
    "origID": "8391923474"
  }
]

const res = data.filter(({
  name
}) => name === "banana").length;

console.log(res)
...