Получить массив свойства объекта в массиве объектов
у меня есть string [] массив Arr содержащий объекты:
0: {PunktID: 19, PunktName: 'NAME1', Description: 'DESC1'}
1: {PunktID: 20, PunktName: 'NAME1', Description: 'DESC1'}
2: {PunktID: 21, PunktName: 'NAME1', Description: 'DESC1'}
Я хочу получить из него массив свойства PunktID
[19,20,21]
Пробовал сделать через Object.value, но здесь вложенность второго уровня. Как можно по другому такое сделать?
Ответы (2 шт):
Не совсем понятны изначальные условия. Если речь про исходный массив объектов вида:
const arr = [
{0: {PunktID: 19, PunktName: 'NAME1', Description: 'DESC1'}},
{1: {PunktID: 20, PunktName: 'NAME1', Description: 'DESC1'}},
{2: {PunktID: 21, PunktName: 'NAME1', Description: 'DESC1'}}
];
То можно пройтись через map
console.log(arr.map((item, i) => item[i].PunktID)) //[19,20,21]
Ваш массив на самом деле должен выглядеть вот так:
const arr = [
{PunktID: 19, PunktName: 'NAME1', Description: 'DESC1'},
{PunktID: 20, PunktName: 'NAME1', Description: 'DESC1'},
{PunktID: 21, PunktName: 'NAME1', Description: 'DESC1'}
];
Это массив объектов. Цифры вам дорисовывает браузер в консоли разработчика. Ниже 2 примера, как достать значения ключа PunktID
const arr = [
{PunktID: 19, PunktName: 'NAME1', Description: 'DESC1'},
{PunktID: 20, PunktName: 'NAME1', Description: 'DESC1'},
{PunktID: 21, PunktName: 'NAME1', Description: 'DESC1'}
];
function ids(origin) {
const res = [];
origin.forEach(item => res.push(item.PunktID));
return res;
}
function idsm(origin) {
return origin.map(item => item.PunktID);
}
console.log(ids(arr));
console.log(idsm(arr));
P.S. Из комментариев:
arr: string[] это аннотация typeScript, которая говорит, что переменная/ключ arr имеет тип данных массив [] строк string. Подробнее можно почитать на официальном сайте