Показать сообщение отдельно
  #5 (permalink)  
Старый 23.02.2021, 12:39
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,704

Да тут не в reduce дело.
Можно и без него. Проще, но чуть длиннее.
let meta= [
      { name: 'surname', title: 'Фамилия', type: 'text' },
      { name: 'name', title: 'Имя', type: 'text' },
      { name: 'secondName', title: 'Отчество', type: 'text' },
      { name: 'phone', title: 'Телефон', type: 'text' },
      { name: 'phone2', title: 'Телефон', type: 'text' },
      { name: 'mail', title: 'E-mail', type: 'text' },
      { name: 'address', title: 'Адрес', type: 'text' }
    ];
let contact= { "name": "Test", "surname": "FirstFamily", "phone": 21254 }

const fnr = (obj, meta) => {
	const o = {}
	for (const {name} of meta) {
		o[name] = '';
		if (name in obj) o[name] += obj[name];
	}
	return o;
}

console.log(fnr(contact, meta))
Ответить с цитированием