如何使用名称 return 对象数组的键

How to return the key of an array of objects using its name

注意:我知道我试图做的事情在逻辑上对我为什么要实现这一目标没有意义,但是我只想知道这是否可能,如果可能的话我可能写错了什么?

我正在处理一组对象,如下所示:

this.animalsAndFruits = [
  {
    "category": "Apple",
    "num1": 1287,
    "num2": 12956
  },
  {
    "category": "Panda",
    "num1": 2574,
    "num2": 25826
  },
  ....
]

这可能看起来很乏味而且相当荒谬,但是使用数组我想 return 单词 'category',而不是键 'category'.

的值

我试过了

this.objectFromArray[0].category

但是它只有 return 第 0 个索引项的值(即使第 0 个索引项键总是有键 'category')

还有其他方法可以实现吗?

P.S。我之所以要得到'category'是因为我需要设置一个变量='category',但是我不想像这样直接硬编码

var someVar  = 'category'

如果有帮助,key:value 对中的值 key = category 始终是一个字符串(而不同键下的所有其他值都是数字。

也许这样的逻辑可行=>

if(value = string) then return key  ?

由于非 category 属性具有一致的格式(num#,对吗?至少要经过 ),如果您想找到执行 不是num开头,可以用Object.keys得到key数组,然后.find匹配条件的key:

const animalsAndFruits = [
  {
    "category": "Apple",
    "num1": 1287,
    "num2": 12956
  },
  {
    "category": "Panda",
    "num1": 2574,
    "num2": 25826
  },
];

const propertyName = Object.keys(animalsAndFruits[0]).find(
  key => !key.startsWith('num')
);
console.log(propertyName);

如果您碰巧能够依赖非 num 键始终是对象中定义的第一个键,您也可以使用 Object.keys(animalsAndFruits[0])[0].