Получение списка значения по ключу из вложенного массива JS

Возможно вопрос покажется слишком легким, но он меня завел в ступор...

Как мне получить список значений, которые находятся по ключу PHONE - VALUE?

0:
ID: "40"
PHONE: Array(2)
    0: {ID: "186317", VALUE_TYPE: "MOBILE", VALUE: "+3333333333", TYPE_ID: "PHONE"}
    1: {ID: "190893", VALUE_TYPE: "WORK", VALUE: "+22222222222", TYPE_ID: "PHONE"}
TITLE: "Title 1"

1:
ID: "47"
PHONE: Array(3)
    0: {ID: "310047", VALUE_TYPE: "MOBILE", VALUE: "+777777777", TYPE_ID: "PHONE"}
    1: {ID: "310048", VALUE_TYPE: "HOME", VALUE: "+6666666666", TYPE_ID: "PHONE"}
    2: {ID: "310049", VALUE_TYPE: "OTHER", VALUE: "+1111111111", TYPE_ID: "PHONE"}
TITLE: "Title 2"
.....

Я пытаюсь сделать это через цикл:

var numberList = [];

for (data in resultData){
        numberList.push(resultData[data].PHONE);
}

И при выводе через numberList.VALUE получаю undefined


Ответы (2 шт):

Автор решения: Pavel Nazarian

const obj = { 
  0: {
    ID: "40",
    PHONE: [
            {ID: "186317", VALUE_TYPE: "MOBILE", VALUE: "+3333333333", TYPE_ID: "PHONE"},
            {ID: "190893", VALUE_TYPE: "WORK", VALUE: "+22222222222", TYPE_ID: "PHONE"}
           ],
    TITLE: "Title 1"},

  1: {
    ID: "47",
    PHONE: [
            {ID: "310047", VALUE_TYPE: "MOBILE", VALUE: "+777777777", TYPE_ID: "PHONE"},
            {ID: "310048", VALUE_TYPE: "HOME", VALUE: "+6666666666", TYPE_ID: "PHONE"},
            {ID: "310049", VALUE_TYPE: "OTHER", VALUE: "+1111111111", TYPE_ID: "PHONE"}
           ],
    TITLE: "Title 2"}
}

let arr = []
Object.values(obj).forEach(el1 => el1.PHONE.forEach(el2 => arr.push(el2.VALUE)))
console.log(arr)

→ Ссылка
Автор решения: yar85
const numberList = resultData.map(itm => itm.PHONE.map(ph => ph.VALUE));

В результате, массив numberList должен содержать подмассивы с номерами, т.е. например

[
  ["+3333333333", "+22222222222"],
  ["+777777777", "+6666666666", "+1111111111"]
]

Если же хочется получить одномерный массив (потеряв связанность с resultData по индексу), то такой массив можно получить выражением numberList.flat(1).

→ Ссылка