如果我有喜歡的對象:使用的參考對象屬性
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'}'? –
你的問題不清楚。你能解釋一下嗎?一個對象如何有爭論?你是指屬性? –