gpt4 book ai didi

javascript - 对于具有多个值的 includes(),在 JavaScript 或 Lodash 中是否有一个单行代码?

转载 作者:行者123 更新时间:2023-11-30 11:17:49 25 4
gpt4 key购买 nike

在我的程序中,我经常验证对象。该验证通常包括检查对象是否具有所有已定义的键。是否有一种单一的方式(简短的方式,最好是单个函数调用)来检查是否使用纯 JavaScript 或 Lodash(我也在使用)?

到目前为止,我在下面的代码中是这样做的。我正在寻找一种更简洁的方法。

function validator(object) {
let requiredKeys = ['key1', 'key2', 'key3'];
for (let requiredKey of requiredKeys) {
if (!object.hasOwnProperty(requiredKey)) {
return false;
}
}
return true;
}

validator({ key1: 1, key2: 2, key3: 3 }); // returns true
validator({ key1: 1, key2: 2 }); // returns false

注意 1:我可以对 objectobject.keys() 进行操作,所以单行函数可以将 Object 作为以及 Array

注意 2:Array 上有 includes() 方法,但它只需要一个参数。我正在寻找一个可以容纳多个版本的版本。

最佳答案

您可以使用 Array#every 查看和对象的 thisArg

function check(object) {
return ['key1', 'key2', 'key3'].every({}.hasOwnProperty, object);
}

console.log(check({}));
console.log(check({ key1: 1 }));
console.log(check({ key1: 1, key2: 2 }));
console.log(check({ key1: 1, key3: 3 }));
console.log(check({ key1: 0, key2: 0, key3: 0 }));

没有thisArg

function check(object) {
return ['key1', 'key2', 'key3'].every({}.hasOwnProperty.bind(object));
}

console.log(check({}));
console.log(check({ key1: 1 }));
console.log(check({ key1: 1, key2: 2 }));
console.log(check({ key1: 1, key3: 3 }));
console.log(check({ key1: 0, key2: 0, key3: 0 }));

关于javascript - 对于具有多个值的 includes(),在 JavaScript 或 Lodash 中是否有一个单行代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50897751/

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