我有动态对象列表。动态,因为数据下对象的数字标识始终在变化/增加。我已经有一个变量被定义为数据下的对象数量。变量如下
var numOfFruits = Object.keys(Fruits.data).length
然后遍历数据下的每个对象我运行此循环
for(numOfFruits in Fruits.data) {
var objectsUnderData = Fruits.data[numOfFruits];
}
我希望能够请求包含特定值的对象的数字标识,例如“Banana”,“Apple”或“Grape”。所以我希望能够使用像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",
}
}
}
我的问题:如何使用特定值(名称:“Apple”,名称:“Banana”等...)来查找其所在对象的身份。
答案 0 :(得分: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));