Добрый день, у меня есть данные в таком формате:
[
{
"name": "Alexandra Palace",
"code": "AAP",
"lat": 51.59793,
"lon": -0.12023
},
{
"name": "Achanalt",
"code": "AAT",
"lat": 57.60958,
"lon": -4.91386
},
{
"name": "Aberdare",
"code": "ABA",
"lat": 51.71506,
"lon": -3.4431
}
]
Я хочу найти элемент с code: ABA
пишу: locations.map((key) => key.code).indexOf('ABA') > -1
. Выдает true
, пока все ок.
После того как нашел этот code
в данных мне нужно вывести name
этого code
(Должно вывести Aberdare
). Подскажите как это сделать?
Не используя indexOf()
.
var found = locations.find((loc) => {
return loc.code === "ABA";
});
var res = found ? found.name : undefined;
Ответ (name
) будет содержаться в переменной res
. Если элемента с кодом "ABA"
вообще не было найдено, то в res
будет undefined
. undefined
также будет в том случае, если элемент по коду "ABA"
найден, но у него нет поля name
.
Рабочий пример:
var locations = [
{
"name": "Alexandra Palace",
"code": "AAP",
"lat": 51.59793,
"lon": -0.12023
},
{
"name": "Achanalt",
"code": "AAT",
"lat": 57.60958,
"lon": -4.91386
},
{
"name": "Aberdare",
"code": "ABA",
"lat": 51.71506,
"lon": -3.4431
}
]
var found = locations.find((loc) => {
return loc.code === "ABA";
});
var res = found ? found.name : undefined;
console.log(res);
После применения map к массиву в выходном массиве у вас остаются только значения полей code
const locations = [
{
"name": "Alexandra Palace",
"code": "AAP",
"lat": 51.59793,
"lon": -0.12023
},
{
"name": "Achanalt",
"code": "AAT",
"lat": 57.60958,
"lon": -4.91386
},
{
"name": "Aberdare",
"code": "ABA",
"lat": 51.71506,
"lon": -3.4431
}
];
const m = locations.map((key) => key.code);
console.log(m);
можно заменить map например на filter, в котором функция выполняется так же для каждого элемента массива, возвращая результат логической операции. filter создает новый массив и помещает в него все элементы массива источника для которого функция вернула true:
const locations = [
{
"name": "Alexandra Palace",
"code": "AAP",
"lat": 51.59793,
"lon": -0.12023
},
{
"name": "Achanalt",
"code": "AAT",
"lat": 57.60958,
"lon": -4.91386
},
{
"name": "Aberdare",
"code": "ABA",
"lat": 51.71506,
"lon": -3.4431
}
];
const res = locations.filter(v => {
return v.code === "ABA";
})[0];
console.log(res.code);
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
ПриветствуюКто пользовался Pdfjs? Нужна ваша помощь
хочу написать условие: если время больше 10 и нажата кнопка class="btn-order" ,вывести сообщениеКак правильно написать второе условие(если нажата...
ЗдравствуйтеЯ собираюсь интегрировать api с Sugarcrm 6