[英]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.