1

I've got array model and I want to use its values array separetaly, since flatMap is not available in my angular application without adding "esnext" to tsconfig.json file I was wondering if it's possible to do the same result without flatMap. Here's my current result:

var model= [
        {
          "values": [
            {
              "colId": 1,
              "value": 7086083333.333333
            },
            {
              "colId": 2,
              "value": null
            },
          ],
          "rowId": 0,
        },
        {
          "values": [
            {
              "colId": 1,
              "value": null
            },
          ],
          "rowId": 1,
          "rowHeader": ""
        },
        {
          "values": [
            {
              "colId": 1,
              "value": null
            },
            {
              "colId": 2,
              "value": null
            },
          ],
          "rowId": 2,
          "rowHeader": ""
        }
      ]
     const data = model.flatMap((wm) => wm.values);
     console.log(data);
user122222
  • 1,563
  • 2
  • 20
  • 49
  • 2
    There's an example in the MDN documentation ~ https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flatMap#Alternative – Phil Sep 20 '19 at 00:17

1 Answers1

2

You can use reduce() method to do that.

var model = [{ "values": [{ "colId": 1, "value": 7086083333.333333 }, { "colId": 2, "value": null }, ], "rowId": 0, }, { "values": [{ "colId": 1, "value": null }, ], "rowId": 1, "rowHeader": "" }, { "values": [{ "colId": 1, "value": null }, { "colId": 2, "value": null }, ], "rowId": 2, "rowHeader": "" } ];

const data = model.reduce((arr, currentValue) => {
  return arr.concat(currentValue.values);
}, []);

console.log(data);
Nikhil
  • 5,957
  • 9
  • 26
  • 55