Skip to content Skip to sidebar Skip to footer

Use A Reference To Many Entries Object Properties

This is a continue from here. What If I have an object : var myObj = [ { 'name,number,level': 'Mike,b1,0' }, { 'name,number,level': 'Rik',b2,0' }, { 'name,number,level': 'Tom',b3,

Solution 1:

I'm going to keep this answer more specific to the given example, you can expand on it by combining this with the answer given here if needed. Note that this method will only work in IE 9 and above and should work in all other current browsers.

var myObj = [
  { 'name,number,level': 'Mike,b1,0' },
  { 'name,number,level': 'Rik,b2,0' },
  { 'name,number,level': 'Tom,b3,0' }
];

myObj = myObj.reduce(function(newObj, currentItem) {
    var values = currentItem['name,number,level'].split(',');
    newObj.name.push(values[0]);
    newObj.number.push(values[1]);
    newObj.level.push(values[2]);
  
    return newObj;
  },
  {
    name: [],
    number: [],
    level: []
  });
                     

console.log('names:', myObj.name)
console.log('first name:', myObj.name[0]);
console.log('numbers:', myObj.number)
console.log('first number:', myObj.number[0]);
console.log('levels:', myObj.level)
console.log('first level:', myObj.level[0]);

Solution 2:

You should not be building your object that way. You shouldn't even call it an object, it's a list of objects, where each object is composed of a name, number and level.

list_of_objects = [{
  name: "mike",
  number: "b1",
  level: 0
}, {
  name: "kevin",
  number: "b2",
  level: 1
}]

//Loop through your array
list_of_objects.forEach(function(myObj, index){
  console.log(myObj.name + " : " + myObj.number + " : " + myObj.level);
});

//Access the first person in your listconsole.log(list_of_objects[0].name); //mike

Solution 3:

You are committing a mistake, the proper way to do that is like this:

Option 1:

var myObj = 
[
    { 
      'name': 'Mike',
      'number': 'b1',
      'level': '0'
    },
    { 
      'name': 'Rik',
      'number': 'b2',
      'level': '0'
    }
];

You can access to the values:

myObj[0].name
myObj[0].number
myObj[0].level

Option 2:

Or you can do like this:

var myObj = 
{
    'name': ['Mike', 'Rik'],
    'number': ['b1', 'b2'],
    'level': ['0', '0']
};

You can access to the values:

myObj.name[0]
myObj.number[0]
myObj.level[0]

You can choose option 1 or option 2 depending in the way you want to arrange your data.

Post a Comment for "Use A Reference To Many Entries Object Properties"