Получить массив из метода Reduce - PullRequest
0 голосов
/ 23 октября 2019

Можно ли сделать массив из моего результата уменьшения?

Например, этот код

const fruitBasket = ['banana', 'cherry', 'orange', 'apple', 'cherry', 'orange', 'apple', 'banana', 'cherry', 'orange', 'fig'];

const count = fruitBasket.reduce((tally, fruit) => {
  tally[fruit] = (tally[fruit] || 0) + 1;
  return tally;
}, {})

console.log(count) // { banana: 2, cherry: 3, orange: 3, apple: 2, fig: 1 }

Можно ли получить массив из count ?

Что-то типа

const NewArrayName = [
 {fruit: "banana", num: "2"},
 {fruit: "orange", num: "3"}
 ]; ```

1 Ответ

0 голосов
/ 23 октября 2019

Вы можете создать объект с помощью ключа values в методе reduce и затем использовать Object.values() для получения желаемого результата:

const fruitBasket = ['banana', 'cherry', 'orange', 'apple', 'cherry', 'orange', 
    'apple', 'banana', 'cherry', 'orange', 'fig'];

const count = fruitBasket.reduce((acc, fruit) => {
  acc.values[fruit] = (acc.values[fruit] || 0) + 1;
  return acc;
}, {values: {}})

const output = Object.values(count)
console.log(`An array: `, output) 
console.log(`An object: `, ...output) 

ОБНОВЛЕНИЕ:

Чтобы получить "банан" и "2":

let banana = output[0]['banana'];
...