Search code examples
javascripttypescriptlodash

Merge all arrays inside of an object


let fruit = {
    apple: [1, 2],
    orange: [3, 4],
    banana: [5, 6],
};

let allFruits = fruit.apple.concat(fruit.orange).concat(fruit.banana);

I can do something like this but what if I have like 20 fruit... Any other way maybe with lodash?


Solution

  • For the sake of completeness, here's how one can do it with lodash:

    _.flatMap(fruit)
    

    Yep, that simple. Two hidden tricks here:

    • flatMap (unlike flatten) works with Collections, and calls Object.values() for objects anyway
    • it takes _.identity (x => x) as a mapper function by default