Assign value to elements in array from Object properties and different Array

Hey I would like to create a new array, from those two elements looking like this:

var a = {szerokosc: 42, wysokosc: 53, dlugosc: null}    // an object
var b = ['dlugosc', '*', 'szerokosc', '+', 'wysokosc']  // an array

The code must work if the correct name is found.
At the End I hope to receive an array like this one:

var c = ['0', '*', '42', '+', '53']

If anyone can tell me how to achieve this, I’d appreciate it. Thanks in advance.

>Solution :

When using a[x] to check the data, simply using b.map(x => a[x] || x) will return [ 'dlugosc', '*', 42, '+', 53 ] due to dlugosc having null value so you need to catch that by checking if the key is present in the object.

Steps:

  1. If the key is present, check if a[x] has a value
  2. If a[x] doesn’t have any value, return 0 instead.
  3. If a[x] has a value, return that.
  4. Lastly, if the key isn’t present in the object, return the same element
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))

Leave a Reply