如果我有一个像这样的对象:
var myObj = { 'name,number,level': 'Mike,b1,0' };
我如何引用其属性?
我该如何使用:
myObj.name
myObj.number
myObj.level
答案 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)
您可以拆分初始键以找出单个键,然后使用它们以您想要的方式创建新对象。这是示例代码。
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;