JavaScript 通过值获取键

JavaScript 通过值获取键

在给定的问题陈述中,我们需要编写一个函数,通过使用JavaScript功能来获取给定值的键。基本上,在JavaScript中,如果我们想从给定的对象中访问键或值,我们可以使用点符号或者括号表示法来访问。

理解问题陈述

问题陈述说我们需要在JavaScript对象中通过值找到一个键。这意味着我们给定了一个JavaScript对象和一个值,所以我们需要找到对应的键,这个键对应于对象中的那个值。

例如,我们有一个JavaScript对象:

{
   key1: 'value1',
   key2: 'value2',
   key3: value3,
};

所以我们可以看到 e.g. value2 的值,我们需要找到它的键,所以在这里我们可以看到 value2 的键是 key2。

给定问题的逻辑

为了解决给定的问题,我们可以迭代对象中的键值对,然后检查当前值是否与给定值匹配。如果值匹配,我们可以返回给定值的对应键。假设给定对象中没有匹配的值,那么我们必须返回空输出,因为数据中没有这样的元素。

步骤

第一步 − 定义一个函数来获取给定值的键。所以传递两个参数 − appObj 和 value。

第二步 − 因为我们要找出键,所以为了存储键,我们将声明一个变量,并使用 entries 方法并在该方法内传递 appObj,以便在该数据中找到键和值的匹配。

第三步 − 定义一个条件块来确定键对象的值是否等于键的实际值。如果条件为真,则返回该键。

第四步 − 如果没有检索到给定值,则返回 null。

代码

//function for getting the key of the given value
function keyByValue(appObj, value) {
   const [key] = Object.entries(appObj).find(([key, val]) => val === value) || [];
   return key || null;
}
const appObj = {
   Application1: 'Learning',
   Application2: 'Ecommerce',
   Application3: 'Software',
   Application4: 'Business',
   Application5: 'School',
};

const value1 = 'Ecommerce';
const value2 = 'Business';
const key1 = keyByValue(appObj, value1);
const key2 = keyByValue(appObj, value2);

console.log(key1);
console.log(key2);

复杂性

该方法的时间复杂度为O(n),因为在最坏的情况下我们需要遍历所有的键值对。算法消耗的空间是常数O(1),因为我们没有使用任何额外的数据结构。

结论

因此,对于上述代码,我们使用了一个for循环来在Javascript对象中搜索值并获取相应的键。该函数的时间复杂度为O(n),空间复杂度为O(1)。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程