gpt4 book ai didi

javascript - 检查 JavaScript 对象的最佳方法是否具有另一个 JavaScript 对象的所有键

转载 作者:行者123 更新时间:2023-11-30 07:08:08 27 4
gpt4 key购买 nike

我有两个 JS 对象,我想检查第一个对象是否拥有第二个对象的所有键并做一些事情,否则,抛出异常。最好的方法是什么?

function(obj1, obj2){
if(obj1.HasAllKeys(obj2)) {
//do something
}
else{
throw new Error(...);
}
};

例如在下面的例子中,因为 FirstObject 拥有 SecondObject 的所有键,所以它应该运行代码:

FirstObject
{
a : '....',
b : '...',
c : '...',
d : '...'
}
SecondObject
{
b : '...',
d : '...'
}

但在下面的示例中,我想抛出一个异常,因为 FirstObject 中不存在 XXX:

FirstObject
{
a : '....',
b : '...',
c : '...',
d : '...'
}
SecondObject
{
b : '...',
XXX : '...'
}

最佳答案

您可以使用:

var hasAll = Object.keys(obj1).every(function(key) {
return Object.prototype.hasOwnProperty.call(obj2, key);
});
console.log(hasAll); // true if obj2 has all - but maybe more - keys that obj1 have.

作为“单线”:

var hasAll = Object.keys(obj1).every(Object.prototype.hasOwnProperty.bind(obj2));

关于javascript - 检查 JavaScript 对象的最佳方法是否具有另一个 JavaScript 对象的所有键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33814687/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com