Oye, me gustaría crear una nueva matriz, a partir de esos dos elementos que se ven así:
var a = {szerokosc: 42, wysokosc: 53, dlugosc: null} // an object var b = ['dlugosc', '*', 'szerokosc', '+', 'wysokosc'] // an arrayEl código debe funcionar si se encuentra el nombre correcto. Al final espero recibir una matriz como esta:
var c = ['0', '*', '42', '+', '53']Si alguien me puede decir como lograr esto, se lo agradecería. Gracias por adelantado.
Al usar a[x] para verificar los datos, simplemente usar b.map(x => a[x] || x) devolverá [ 'dlugosc', '*', 42, '+', 53 ] debido a dlugosc tiene un valor null , por lo que debe detectarlo comprobando si la clave está presente en el objeto.
Pasos:
a[x] tiene un valora[x] no tiene ningún valor, devuelve 0 en su lugar.a[x] tiene un valor, devuélvelo. var a = {szerokosc: 42, wysokosc: 53, dlugosc: null} // an object var b = ['dlugosc', '*', 'szerokosc', '+', 'wysokosc'] // an array console.log(b.map(x => Object.keys(a).includes(x) ? !a[x] ? 0 : a[x] : x))Puedes hacerlo
var a = {szerokosc: 42, wysokosc: 53, dlugosc: 0} // an object var b = ['dlugosc', '*', 'szerokosc', '+', 'wysokosc'] // an array const transform = (data, dictonary) => data.map(i => dictonary.hasOwnProperty(i)? dictonary[i] : i) console.log(transform(b, a))