0
你好,我有一個相當奇怪的問題,沒有多大意義。 我有一個變量是一個字符串,我想搜索一個對象的屬性(也是一個對象)具有相同的名稱。像這樣:我想返回一個對象,但我得到一個字符串
var ObjectProperty; /// multi-layer object
var PropertyName; //string
如果在對象中存在與PropertyName匹配的內容,我想返回它。 示例代碼:
OBJECT:
Bird.Raven = {
Name:"Raven",
Color:"Black",
}
//Object
Bird.Duck = {
Name:"Duck",
Color: "Gray",
}
//Object
Bird.Cardinal = {
Name:"Cardinal",
Color: "Red",
}//Object
///ObjectProperty sample.
主要我想在裏面找「鳥」:
:我使用的,假設「n」是該屬性名的變量我想搜索var Cardinal = "Cardinal"; //string
///PropertyName sample.
當前功能
var searchBirds = function(n) {
for(var key in Bird) {
var keyName = key.toString();
if(keyName == n){
console.log("bird " + key + " has been found.");
console.log(typeof key);//RETURNS STRING
return key;
}
else{
console.log(n + " could not be found")
};
}
}
爲什麼當它應該是一個對象時它返回一個字符串?我怎樣才能讓它作爲一個對象返回鍵?怎麼了?香草豆JavaScript首選。
感謝您的幫助,我希望這是有道理的!
打我吧:) – wprl
儘管我不太熟悉括號和鍵和屬性(儘管我正在處理這個問題),但我不得不說這是神奇的!謝謝! – user2588440
@ user2588440::-)對象屬性有*名稱*。我們可以通過兩種方式給JavaScript引擎提供我們想要的屬性的名稱:或者通過在文本中直接輸入它作爲「標識符」,比如「a.height」中的「height」,或者通過給它作爲一個字符串發送到引擎:'a [「height」]'。引擎知道我們正在做的是哪一個,因爲我們使用帶標識符的'.',但是我們在字符串中使用了'[...]'。這是做同樣事情的兩種不同方式。如果我們使用的是字符串,它可以是任何字符串,所以'a'「he」+「ight」]'工作,並且'key1 =「height」'然後''[key1]'工作。 –