สมมติว่าเรามีวัตถุ JSON ต่อไปนี้ -
const obj = { "test1": [{ "1": { "rssi": -25, } }, { "2": { "rssi": -25, } }], "test2": [{ "15": { "rssi": -10, } }, { "19": { "rssi": -21, } }] };
เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับวัตถุเช่นนี้ -
ฟังก์ชันควรจับคู่คุณสมบัติ "rssi" ของออบเจ็กต์ที่ซ้อนกันทั้งหมดกับอาร์เรย์ที่ซ้อนกันของอาร์เรย์ที่สอดคล้องกัน
ดังนั้น สำหรับอาร์เรย์ด้านบน ผลลัพธ์ควรมีลักษณะดังนี้ −
const output = [[-25, -25], [-10, -21]];
ตัวอย่าง
const obj = { "test1": [{ "1": { "rssi": -25, } }, { "2": { "rssi": -25, } }], "test2": [ { "15": { "rssi": -10, } }, { "19": { "rssi": -21, } }] }; const mapToValues = (object = {}) => { const res = []; for (let key in object) { let obj = object[key]; let aux = []; for (let i = 0; i < obj.length; i++) { for (x in obj[i]) { aux.push(obj[i][x].rssi); } } res.push(aux); } return res; }; console.log(mapToValues(obj));
ผลลัพธ์
และผลลัพธ์ในคอนโซลจะเป็น −
[ [ -25, -25 ], [ -10, -21 ] ]