Estoy tratando de recuperar todos los datos de ciertos objetos dentro de una matriz de JavaScript; sin embargo, tengo problemas para extraer esos datos. Esta es la estructura de la matriz:
{\"responses\":[{\"responseId\":\"R_54lNG4hW4m0ULsi\",\"values\":{\"startDate\":\"2021-08-19T20:36:50.190Z\",\"endDate\":\"2021-08-19T20:36:50.190Z\",\"status\":4,\"finished\":1,\"recordedDate\":\"2021-08-19T20:36:50.190Z\",\"_recordId\":\"R_54lNG4hW4m0ULsi\",\"QID1_TEXT\":\"08/19/2021\",\"QID2_TEXT\":\"\",\"QID3_TEXT\":\"\",\"QID4_TEXT\":\"\",\"QID8_TEXT\":\"\",\"QID5_TEXT\":\"10\",\"QID6_TEXT\":\"Test \",\"QID7_TEXT\":\"\"},\"labels\":{\"status\":\"Imported\",\"finished\":\"True\"},\"displayedFields\":[],\"displayedValues\":{}},Este es mi código:
for (var key in GetData.responses) { var obj = GetData.responses[key].values; for (var value in obj) { if (obj.hasOwnProperty(value)) { var ObjA = (obj[key]); document.getElementById("container").innerHTML = ObjA; console.log(ObjA); } } }Estoy tratando de recorrer todos los objetos que comienzan con QID1 y extraer el valor, pero me falta algo. Como puede ver en el json, hay una serie de campos que necesito filtrar. Me estoy quedando atrapado en la maleza.
Tal vez algo como el siguiente fragmento (solo una pequeña modificación de su código):
const responses = [ { values: { QID1_text: 1, QID2_text: 1212, } }, { values: { QID1_text: 2, QID2_text: 1212, } }, { values: { QID1_text: 3, QID2_text: 1212, } }, ] const text = document.querySelector("#container") const regEx = /^QID1/; for (let key in responses) { let obj = responses[key].values; for (let value in obj) { if (regEx.test(value)) { let ObjA = (obj[value]); let p = document.createElement("p"); let div = document.createElement("div"); div.setAttribute('data', ObjA); p.innerHTML = ObjA; div.appendChild(p); text.appendChild(div); } } } <p id="container"></p>