我有一個數組,其中包含對象的所有值的屬性。 這樣的事情。如何在javascript中獲取對象值
var act=["name.first","age"];
var ab={name:{first:"roli",last:"agrawal"},age:24};
console.log(ab[act[0]]);
如何使用行爲值訪問對象的值?
我有一個數組,其中包含對象的所有值的屬性。 這樣的事情。如何在javascript中獲取對象值
var act=["name.first","age"];
var ab={name:{first:"roli",last:"agrawal"},age:24};
console.log(ab[act[0]]);
如何使用行爲值訪問對象的值?
試試這個簡單的
var ab = {first: 'a',
last: 'b',
age: '24'}
var ac = [];
ac.push(ab);
console.log(ac[0]);
感謝您的解決方案,但我不想更改我的數據結構。 –
你必須字符串act[0]
拆分爲您的對象不包含任何鍵名爲"name.first"
:
var act=["name.first","age"];
var ab={name:{first:"roli",last:"agrawal"},age:24};
var key = act[0].split('.');
console.log(ab[key[0]][key[1]]);
同意,它不是」本地支持,但您可以使用一個小整流器函數來遍歷傳遞的路徑並獲取值。這也許可以優化,但工作原理:
var act=["name.first","age"];
var ab={name:{first:"roli",last:"agrawal"},age:24};
function getProperty(inputObj, path) {
var pathArr = path.split('.');
var currentObjLevelOrOutput;
var i;
if (pathArr.length > 1) {
currentObjLevelOrOutput = inputObj;
for (i=0; i < pathArr.length; i++) {
currentObjLevelOrOutput = currentObjLevelOrOutput[pathArr[i]];
}
} else {
currentObjLevelOrOutput = inputObj[path];
}
return currentObjLevelOrOutput;
}
console.log(getProperty(ab,act[0]));
如果屬性名稱是一個數組,你怎麼知道你要使用的數組項?如果你想使用所有的數組項,那麼結果是從哪裏來的? (大概不是真的只是在控制檯上。) – nnnnnn
我想使用所有的,但現在嘗試與第零個元素 –
我已經將這與一個老問題,這個問題的答案涵蓋了「name.first」嵌套屬性部分的一個屬性。要訪問數組中指定的所有屬性,只需在循環中執行相同的操作。 (類似的答案的另一個問題是[這裏](http://stackoverflow.com/questions/8817394/javascript-get-deep-value-from-object-by-passing-path-to-it-as-string)。 ) – nnnnnn