Вы можете воспользоваться функцией, которая проверяет, задан ли заполнитель, и разветвлять рекурсию или обновить все ключи.
function setValue(object, [key, ...rest], value) {
if (key === '*') {
Object.keys(object).forEach(rest.length
? k => setValue(object[k], rest, value)
: k => object[k] = value
);
return;
}
if (rest.length) {
setValue(object[key], rest, value);
return;
}
object[key] = value;
}
var object = { root: { a: null, b: null, c: null } },
path = ["root", "*"];
setValue(object, path, 1);
console.log(object);