Простой цикл for будет делать:
for (let index in obj) channels[index].status = obj[index];
const channels=[{name: "mega", status: true}, {name: "ant", status: false}, {name: "apl", status: true}];
const obj={0: false, 1:true};
for (let index in obj) {
channels[index].status = obj[index];
}
console.log(channels);
Если вы не хотите изменять оригинал массив, но хотите новый массив с модификациями:
const channels=[{name: "mega", status: true}, {name: "ant", status: false}, {name: "apl", status: true}];
const obj={0: false, 1:true};
const result = channels.map(({name, status}, i) =>
({name, status: i in obj ? obj[i] : status})
);
console.log(result);
Для Vista и можно использовать RegisterPowerSettingNotification
Поскольку более ранние функции видят Функции Управления питанием в этом разделе Функций Управления питанием "страницы MSDN: Windows Server 2003 и Ранее"
Вы видите пример кода метода Vista на codeproject.