Значения в массиве строк уникальны? Если нет, сколько надо добавлять объектов?
Сколько раз строка повторилась - столько новых объектов будет добавлено:
const names = new Set(objects.map(n => n.name));
strings.forEach(n => (names.has(n) || objects.push({ name: n })));
Два раза одно и то же не добавляем:
new Set(strings).forEach(function(n) {
if (!this.has(n)) {
objects.push({ name: n });
}
}, new Set(objects.map(n => n.name)));
// или
for (const name of strings) {
if (objects.every(n => n.name !== name)) {
objects[objects.length] = { name };
}
}
// или
objects.splice(0, objects.length, ...strings.reduce(
(acc, n) => acc.set(n, acc.get(n) ?? { name: n }),
new Map(objects.map(n => [ n.name, n ]))
).values());