在 JavaScript 中从值获取键
在给定的问题陈述中,我们必须编写一个函数,该函数将帮助使用 Javascript 功能获取给定值的键。因此,在 Javascript 中,如果我们想从给定的对象访问键或值,我们可以通过点符号或括号符号来访问它。
理解问题陈述
问题陈述说我们必须从 Javascript 对象中的值中找到一个键。这意味着我们得到了一个 Javascript 对象和一个值,因此我们需要找到映射到对象中该值的相应键。
例如,我们有一个 Javascript 对象,如
{ key1: 'value1', key2: 'value2', key3: value3, };
因此,我们可以看到值,例如 value2,我们需要找到它的键,因此我们可以在此处看到 value2 的键是 key2。
给定问题的逻辑
为了解决给定的问题,我们可以遍历对象中的键值对,然后检查当前值是否与给定值匹配。如果值匹配,我们可以返回给定值的相应键。假设给定对象中的值未匹配,则我们必须将输出返回为 null,因为数据中没有这样的元素。
算法
步骤 1 - 定义一个函数来获取给定值的键。因此传递两个参数 - appObj 和 value。
步骤 2 - 因为我们必须找出密钥,所以为了存储密钥,我们将声明一个变量并借助entries方法初始化其值,并在此函数中传递appObj,对于此数据,我们将找到密钥和值的匹配项。
步骤 3 - 定义一个条件块来确定密钥对象的值是否等于密钥的实际值。如果条件为真,则返回密钥。
步骤 4 - 如果未检索到给定的值,则返回值为null。
算法代码
//用于获取给定值的密钥的函数 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)。