Вернуть объект на основании пересечения строк из двух массивов
Есть проверочный массив:
const someStrings = ['google', 'facebook', 'instagram'];
Есть массив строк, который я получаю с бэка, там может быть любое количество строк. Например с бэка я получил такой массив:
const linksFromBack = ['www.google.com', '' , 'stackoverflow.com', 'instagram.com'];
Нужно вернуть объект в котором ключ будет назван по элементу из массива someStrings, а его значение будет элементом из второго массива, который содержит подстроку из первого. Вид возвращаемого объекта:
const linksObject = {
google: 'www.google.com',
facebook: '',
instagram: 'instagram.com',
};
Ответы (2 шт):
Автор решения: SaNFeeD
→ Ссылка
Думаю, что такое решение подойдет.
const someStrings = ['google', 'facebook', 'instagram'];
const linksFromBack = ['www.google.com', '', 'stackoverflow.com', 'instagram.com'];
const getLinkObj = (keys, values) => {
const linkObj = {};
keys.forEach((key) => {
const value = values.find((value) => value.match(key));
linkObj[key] = value ?? '';
});
return linkObj;
};
Автор решения: Максим Бондаренко
→ Ссылка
Подсказали такое решение
Object.fromEntries(someStrings.map(item=>{
return [item, linksFromBack.find(link=>link.includes(item)) || '']
}))