繁体   English   中英

从 Object 的值中获取 Object 的密钥

[英]Getting key of Object from Value that is an Object

我已经看到了有关如何执行此操作的多个其他问题,但我还没有找到一个可以解释这种情况的问题。

我有一个 object (我们称之为obj ),它具有 object 属性(我们称之为objProp )。 我需要找到objProp的键,以便可以从obj中删除它。 我遇到了一个问题,因为我不能使用indexOf类似的东西,因为我的值本身就是对象。

//obj declaration etc 

delete obj[getKeyByValue(obj, objProp)];

function getKeyByValue(object, value) {
  return Object.keys(object).find(key => object[key] === value);
};

以上将不起作用,因为objProp是另一个object,还有其他方法可以做到吗?

根据ECMAScript 规范,当您比较 2 个不同的对象时, ===将始终返回false

如果您的对象(以及所有内部嵌套对象)键的顺序相同, JSON.stringify(object[key]) === JSON.stringify(value)可能会起作用。

否则,考虑一下 Lodash 的_.isEqual之类的东西。 要么通过引入 lodash 作为依赖项直接使用它,要么自己实现类似的东西。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM