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