使用对象属性的引用

时间:2016-06-10 10:26:46

标签: javascript

如果我有一个像这样的对象:

var myObj = { 'name,number,level': 'Mike,b1,0' };

我如何引用其属性?

我该如何使用:

myObj.name
myObj.number
myObj.level

2 个答案:

答案 0 :(得分:2)

您需要使用方括号表示法:var newObj = {}, values = myObj['name,number,level'].split(','); newObj.name = values[0]; newObj.number = values[1]; newObj.level = values[2]; 来获取值。如果您希望映射各个部分(并且您只有此密钥),您可以执行以下操作:

function convertToIndividualKeys(obj) {
  var key, keys, values, newObj = {};
  for(key in obj) {
    if(obj.hasOwnProperty(key)) {
      keys = key.split(',');
      values = obj[key].split(',');
      for (var i = 0; i < keys.length && i < values.length; i++) {
        newObj[keys[i]] = values[i];
      }
    }
  }

  return newObj;
}

var myObj = { 'name,number,level': 'Mike,b1,0' };
myObj = convertToIndividualKeys(myObj);

// Now you can access it the way you would like
myObj.name // gives "Mike"

更通用的方法是:

myObj = { 'name,number': 'A,1', 'name2,number': 'B,2' };

注意:

通过这些转换,值将全部为字符串。你的例子中的0实际上是&#39; 0&#39;因此您可能需要手动将其转换为整数,具体取决于您的使用方式。

如果你有多个密钥,这将覆盖其他值,即{ name: 'A', name2: 'B', number: 2 }可能会变成import Alamofire

答案 1 :(得分:1)

您可以拆分初始键以找出单个键,然后使用它们以您想要的方式创建新对象。这是示例代码。

&#13;
&#13;
var myObj = {
  'name,number,level': 'Mike,b1,0'
};
for (var i in myObj) {
  var keys = i;
  var value = myObj[i];
  keysArray = keys.split(",");
  valArray = value.split(",");

  var newObj = {};
  for (i = 0; i < keysArray.length; i++) {

    newObj[keysArray[i]] = valArray[i];

  }

  alert(newObj.name);
  alert(newObj.number);
  alert(newObj.level);
}
&#13;
&#13;
&#13;