如果我有喜欢的对象:使用的参考对象属性
var myObj = { 'name,number,level': 'Mike,b1,0' };
如何我可以引用它的属性?
如何使用:
myObj.name
myObj.number
myObj.level
如果我有喜欢的对象:使用的参考对象属性
var myObj = { 'name,number,level': 'Mike,b1,0' };
如何我可以引用它的属性?
如何使用:
myObj.name
myObj.number
myObj.level
您需要使用方括号:myObj['name,number,level']
来获取值。如果你想在各个部分映射(你只能拥有这关键的),你可以这样做:
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"
注:
通过这些转换,这些值将全部为字符串。您示例中的0实际上将为'0',因此您可能需要手动将其转换为整数,具体取决于您如何使用它。
这将覆盖其它的值,如果你有多个按键,即myObj = { 'name,number': 'A,1', 'name2,number': 'B,2' };
可能会变成{ name: 'A', name2: 'B', number: 2 }
:我打开了一个新帖子,如果你有兴趣[这里](http://stackoverflow.com/questions/37747912/use-a-reference-to-many-entries-object-properties) – George
您可以分割初始密钥找出一个键,然后用它们来创建新的对象,你想要的方式。这里是示例代码。
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);
}
只需要指出,只有在对象中只有一个键的情况下,此解决方案才有效。只有对象中的最后一个键/值对才会被处理。 – rdubya
你只需要一键MyObj中[“的名称,数量,水平”] – maioman
需要明确的是,你要转换'{ 'name,number,level':'Mike,b1,0'}'为'{'name':'Mike','number':'b1','level':'0'}'? –
你的问题不清楚。你能解释一下吗?一个对象如何有争论?你是指属性? –