2016-12-26 262 views
0

我有動態對象列表。動態的,因爲數據下的對象的數字身份始終在變化/增加。我已經有一個被定義爲數據下對象數量的變量。變量是如下通過查找特定值通過對象列表查找對象

var numOfFruits = Object.keys(Fruits.data).length 

然後要經過每個對象下數據I運行這個循環

for(numOfFruits in Fruits.data) { 
    var objectsUnderData = Fruits.data[numOfFruits]; 
} 

我想能夠請求對象的含有一定值這樣的數字身份如「香蕉」,「蘋果」或「葡萄」。所以,我希望能夠用一個預先定義的變量一樣var name = "Apple"並獲得它的對象的身份

{ 
    "type": "fruits", 
    "data": { 
    "1": { 
     "id": 1, 
     "key": "Banana", 
     "name": "Banana", 
    }, 
    "2": { 
     "id": 2, 
     "key": "Orange", 
     "name": "Orange", 
    }, 
    "3": { 
     "id": 3, 
     "key": "Grape", 
     "name": "Grape", 
    }, 
    "4": { 
     "id": 4, 
     "key": "Apple", 
     "name": "Apple", 
    } 
} 

}

我的問題:我如何使用特定值(名稱: 「蘋果」,名稱:「香蕉」等)來查找它所處的對象的身份。下面

+0

哪裏是你的具體問題陳述和問題?請花幾分鐘時間閱讀[ask] – charlietfl

+0

@charlietfl,我對此感到抱歉,有點被帶走。這是否清除了它?我試圖解釋我想做我最好的能力。如果不清楚,我很抱歉。 – L3gionOfDooM

回答

0

見功能fruitFinder

function fruitFinder (Fruits, name) { 
 
    for (fruit in Fruits.data) { 
 
    if (Fruits.data[fruit].name == name) { 
 
     return Fruits.data[fruit].id; 
 
    } 
 
    } 
 
} 
 

 
var Fruits = { 
 
    "type": "fruits", 
 
    "data": { 
 
    "1": { 
 
     "id": 1, 
 
     "key": "Banana", 
 
     "name": "Banana", 
 
    }, 
 
    "2": { 
 
     "id": 2, 
 
     "key": "Orange", 
 
     "name": "Orange", 
 
    }, 
 
    "3": { 
 
     "id": 3, 
 
     "key": "Grape", 
 
     "name": "Grape", 
 
    }, 
 
    "4": { 
 
     "id": 4, 
 
     "key": "Apple", 
 
     "name": "Apple", 
 
    } 
 
    } 
 
}; 
 

 
var name = "Apple"; 
 

 
console.log(fruitFinder(Fruits, name));

+0

非常感謝。工作得很好!你是一個拯救生命的人。 – L3gionOfDooM