📜  js 查找属性的值并返回它的键 - Javascript (1)

📅  最后修改于: 2023-12-03 15:17:02.654000             🧑  作者: Mango

JS 查找属性的值并返回它的键 - Javascript

在Javascript中,我们可以使用对象(Object)来存储一些键-值对,其中每个键对应一个唯一的值。但是,在有时候我们需要根据值来查找对应的键,这在一些程序中会非常有用。下面将介绍如何在Javascript中查找属性的值并返回相应的键。

1. 使用 for...in 循环遍历对象

Javascript中的for...in循环可以用来遍历对象的所有属性,如下所示:

let obj = {a: 1, b: 2, c: 3};
for(let key in obj) {
  console.log(key); // a b c
}

在循环中,key即为迭代的对象属性名,我们可以通过obj[key]来获取它的值。因此,使用for...in循环可以很方便地查找对象中的值并返回相应的键。

let obj = {a: 1, b: 2, c: 3};
function getKeyByValue(value) {
  for(let key in obj) {
    if(obj[key] === value) {
      return key;
    }
  }
}
console.log(getKeyByValue(2)); // b

上面的代码中,getKeyByValue函数接受一个值作为参数,通过for...in循环遍历对象,当查找到值为2的属性时,返回该属性对应的键'b'。

2. 使用Array.prototype.find()方法查找属性的值

除了使用for...in循环,我们还可以使用Javascript中的Array.prototype.find()方法来查找对象中的值。需要注意的是,该方法只能用于数组,而对象并不是数组,因此我们需要先将对象转化为数组。

let obj = {a: 1, b: 2, c: 3};
let arr = Object.entries(obj); // 转化为键值对数组
function getKeyByValue(value) {
  let res = arr.find(item => item[1] === value);
  return res ? res[0] : undefined;
}
console.log(getKeyByValue(2)); // b

上面的代码中,我们使用Object.entries(obj)将对象转化为键值对数组。接着,使用arr.find()方法查找值为2的元素,并返回其对应的键'b'。

结论

通过for...in循环和Array.prototype.find()方法,我们可以很容易地查找Javascript对象中的值并返回相应的键。对于不同的场景,我们可以选择不同的方法来实现这个功能。