Вернуть объект на основании пересечения строк из двух массивов

Есть проверочный массив:

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)) || '']
}))
→ Ссылка