Я не думаю, что использование простого l oop является оптимизированным способом, но вы можете использовать следующий код, чтобы получить конкретный c результат.
let response = [
{ id: '45:32:BC:3E:67:CD', name: 'beacon1', rssi: -78, region: 1 },
{ id: '71:B2:51:E7:91:C0', name: 'beacon2', rssi: -52, region: 1 },
{ id: '73:CD:84:44:DA:BE', name: 'beacon3', rssi: -53, region: 1 },
{ id: '4F:6E:FA:E7:E1:5B', name: 'beacon4', rssi: -53, region: 1 }
]
let obj = {};
for (i in response) {
obj.region = response[i].region;
obj[response[i].name] = response[i].rssi;
}
console.log(obj);
ИЛИ вы можете использовать более функциональный подход:
let response = [
{ id: '45:32:BC:3E:67:CD', name: 'beacon1', rssi: -78, region: 1 },
{ id: '71:B2:51:E7:91:C0', name: 'beacon2', rssi: -52, region: 1 },
{ id: '73:CD:84:44:DA:BE', name: 'beacon3', rssi: -53, region: 1 },
{ id: '4F:6E:FA:E7:E1:5B', name: 'beacon4', rssi: -53, region: 1 }
]
const result = response.reduce((acc, { name, region, rssi }) => ( { ...acc, region, [name]: rssi } ), {} );
console.log(result);