Is it possible to get an object's own keyname to use within the object?

Viewed 26

for example, can 'dliaz' be pulled into img: to be used rather than typing the same thing out twice for every object?

const profileContentSrc={
    'dliaz':{
        img:img_root[0]+'dliaz'+img_root[1],
        p:'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin nec felis consectetur, semper urna nec, eleifend sapien.'
    },    
    'srojourner':{
        img:img_root[0]+'srojourner'+img_root[1],
        p:'Morbi hendrerit dignissim lorem, id scelerisque elit. Aliquam iaculis varius lacinia. In dignissim placerat urna ac hendrerit.'
    }  
1 Answers

You can do it if you first create an auxiliary data object (or if you already have a set of entries in your database) and then generate a final object out of it using for loop. For example:

var img_root = [
  'user-',
  '.jpg'
]; // for example

var data = [{
    name: 'dliaz',
    text: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin nec felis consectetur, semper urna nec, eleifend sapien.'
  },
  {
    name: 'srojourner',
    text: 'Morbi hendrerit dignissim lorem, id scelerisque elit. Aliquam iaculis varius lacinia. In dignissim placerat urna ac hendrerit.'
  }
];

function getDataObject(array) {
  var obj = {};
  for (var item of array) {
    obj[item.name] = {
      img: img_root[0] + item.name + img_root[1],
      p: item.text
    };
  }
  return obj;
}

console.log(getDataObject(data));

Good luck!

Related