["name0", "name1", "name2"]
[{name:"name0"}, {name:"name1"}]
new Set(strings).forEach(function(n) {
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());