Tengo un objeto que me gustaría simplificar, basado en una condición:
// input const image = { transform: { mobile: {}, desktop: {} }, ... } // output - say we only want mobile transforms const image = { transform: {}, ... } Mi enfoque actual usa Object.assign para reemplazar la clave de transformación con su hijo mobile o de desktop , eliminando una capa de complejidad, así como datos no utilizados. Hay otras claves además de transformar en el objeto de imagen original que deben persistir.
Sin embargo, image.transform parece estar undefined durante esta operación, aunque todas las claves se definen cuando la consola las registra.
TypeError: Cannot read properties of undefined (reading 'desktop') const image = { id: "asdasd123213", transform: { mobile: { top: 2, left: 1, width: 20, }, desktop: { top: 20, left: 145, width: 260, } } } const images = [image, image, image]; const isMobile = true; const newImages = images.map((image) => { const device = image.transform; return Object.assign(image, { transform: device[isMobile ? "mobile" : "desktop"], }); }); console.log(newImages)