Приветствую
у меня есть массив вида
let ranges = [
{
min: 10,
max: 10,
},
{
min: 30,
max: 40,
},
]
массив значений
let data = {
10: {},
17: {},
32: {},
}
Нужно построить из массива data на основании данных из массива range новый массив:
let new_data = {
10: {},
32: {},
}
Как это сделать красиво и оптимально, без большого кол-ва строчек кода?
Сейчас сделал школьным методом в лоб:
let new_data = {};
for (const index in data)
{
for (const range of ranges)
{
if ((index >= range.min) && (index <= range.max))
{
new_data[index ] = articles[index ];
break;
}
}
}
А можно ли как-то сделать покрасивее код? Уровня "в одну строчку" средствами JavaScript
В одну строчку:
const ranges = [
{
min: 10,
max: 10,
},
{
min: 30,
max: 40,
},
];
const data = {
10: {},
17: {},
32: {},
33: {},
41: {}
}
let new_data = Object.keys(data).filter(index => ranges.find(range => index >= range.min && index <= range.max)).reduce((new_data, index) => Object.assign(new_data, {[index]: data[index]}), {});
console.log(new_data);
Правда я не уверен что это красивее)
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Доброго времени сутокПодскажите, пожалуйста как сократить код?
На странице есть динамические ссылки a открывающие iframe с панорамой
Добрый день! Столкнулся с задачей по автоматизации работы с браузером с помощью powershell