使用对许多条目对象属性的引用

时间:2016-06-10 12:07:43

标签: javascript

这是here的继续。

如果我有一个对象:

var myObj = [

{ 'name,number,level': 'Mike,b1,0' },
{ 'name,number,level': 'Rik',b2,0' },
{ 'name,number,level': 'Tom',b3,0'},
....
}
];

我该如何使用:

myObj.name
myObj.number
myObj.level 

例如myObj.name应该提供所有名称,或者 myObj.name[0]会给我一个名字。

3 个答案:

答案 0 :(得分:2)

我希望将此答案更具体地说明给定的示例,如果需要,您可以将其与here给出的答案相结合进行扩展。请注意,此方法仅适用于IE 9及更高版本,并且应该适用于所有其他当前浏览器。



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]);




答案 1 :(得分:1)

您不应该以这种方式构建对象。您甚至不应将其称为对象,它是对象列表,其中每个对象都由名称数字级别

hibernate { 
    naming_strategy = org.hibernate.cfg.ImprovedNamingStrategy
}

答案 2 :(得分:0)

你犯了一个错误,正确的做法就是这样:

选项1:

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

您可以访问以下值:

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

选项2:

或者你可以这样做:

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

您可以访问以下值:

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

您可以选择选项1 选项2 ,具体取决于您要排列数据的方式。