【问题标题】:Finding object through list of objects by finding a specific value通过查找特定值通过对象列表查找对象
【发布时间】:2017-05-10 14:06:48
【问题描述】:

我有动态对象列表。动态的,因为数据下对象的数字标识总是在变化/增加。我已经有一个变量,它被定义为数据下的对象数量。变量如下

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”等...)来查找它所在的对象的身份。

【问题讨论】:

  • 您的具体问题陈述和问题在哪里?花几分钟阅读How to Ask
  • @charlietfl ,对此我感到很抱歉,有点忘乎所以。这清楚了吗?我试图解释我想尽我最大的能力做什么。如果不清楚,我深表歉意。

标签: javascript node.js object data-structures


【解决方案1】:

请参阅下面的函数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));

【讨论】:

  • 非常感谢。效果很好!你是救生员。
猜你喜欢
  • 1970-01-01
  • 2018-09-08
  • 1970-01-01
  • 2021-05-29
  • 2016-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-02
相关资源
最近更新 更多