Tengo una matriz como esta:
const faces= [ [[128516], "grinning face with smiling eyes", "20201001"], [[128512], "grinning face", "20201001"], [[128578], "slightly smiling face", "20201001"], [[128579], "upside-down face", "20201001"], [[128521], "winking face", "20201001"] ]Y quiero convertirlo a un JSON formateado como este usando JavaScript:
[ { "id": 128516, "name": "grinning face with smiling eyes", "date": "20201001" }, { "id": 128512, "name": "grinning face", "date": "20201001" } ]Cualquier ayuda es apreciada.
const faces = [ [ [128516], "grinning face with smiling eyes", "20201001" ], [ [128512], "grinning face", "20201001" ], [ [128578], "slightly smiling face", "20201001" ], [ [128579], "upside-down face", "20201001" ], [ [128521], "winking face", "20201001" ] ] let result = [] faces.forEach(item => { let a = { id: item[0][0], name: item[1], date: item[2] } result.push(a) }) console.log(JSON.stringify(result))Podrías usar reduce :
const faces = [ [ [128516], "grinning face with smiling eyes", "20201001" ], [ [128512], "grinning face", "20201001" ], [ [128578], "slightly smiling face", "20201001" ], [ [128579], "upside-down face", "20201001" ], [ [128521], "winking face", "20201001" ] ] const result = faces.reduce((result, value) => { result.push({ id: value[0][0], name: value[1], date: value[2] }) return result }, []) console.log(result)Código simple de una línea usando la funcionalidad de 'mapa' de Arrays.
const faces= [ [[128516], "grinning face with smiling eyes", "20201001"], [[128512], "grinning face", "20201001"], [[128578], "slightly smiling face", "20201001"], [[128579], "upside-down face", "20201001"], [[128521], "winking face", "20201001"] ]; let newObj = []; faces.map(eachObj => { const obj = { id: eachObj[0][0], name: eachObj[1], date: eachObj[2] }; newObj.push(obj); }); console.log('New Obj ==>', newObj);