Объект: names-array.json
[
{
"item_1": [
{
"value": 2
},
{
"value": 4
}
]
},
{
"item_2": [
{
"value": 5
},
{
"value": 6
}
]
}
]
Нужно вытащить:
[
{
"value": 5
},
{
"value": 6
}
]
Попытка решения (node.js)
const namesArray = require('./names-array.json');
function findAvailable(name) {
return namesArray.filter(item => {
return item.hasOwnProperty(name);
});
}
Да, filter создал опять массив и его можно убрать добавив [0], но останется item_2, и это какое-то корявое решение.
console.log(findAvailable('item_2')[0])
Результат:
{
item_2: [
{
value: 5
},
{
value: 6
}
]
}
Как получить желаемое?
Не совсем понятно, по какому правилу надо фильтровать, но давайте условимся: у нас есть ключ и нам нужно получить, все значение объекта, у которого есть этот ключ
const data = [
{
"item_1": [
{
"value": 2
},
{
"value": 4
}
]
},
{
"item_2": [
{
"value": 5
},
{
"value": 6
}
]
}
];
const getFilteredData = (key, data) => {
const result = data.find(e => e.hasOwnProperty(key));
if (!result) return undefined;
return result[key];
}
console.log(getFilteredData('item_1', data));
console.log(getFilteredData('item_2', data));
console.log(getFilteredData('never', data));
Немного про метод find
Метод find() возвращает значение первого найденного в массиве элемента, которое удовлетворяет условию переданному в callback функции. В противном случае возвращается undefined.
Если в массиве будет несколько элементов, где есть нужный ключ, вернется самый первый. В условиях это не сказано, поэтому подразумевал, что всегда есть только один объект. Но и реализовать вариант с множеством будет не сложно
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском
Здравствуйте есть вот такое задание: Пользователь вводит последовательность строк, состоящих из слов и чисел, разделенных пробеламиПризнак...
У меня есть код, который исправляет первую букву каждого слова в инпуте на заглавную букву, очень полезно для инпутов именТак вот данный код...