javascript - Lodash:_.has 检查返回 false 的键

标签 javascript object key lodash

我有这个对象:

值 = {页:“0”,长度:“12”}

我想检查键是否有 pagelength 因此我使用 Lodash 想出了这个解决方案:

has(values, 'page') && has(values, 'length')

这按预期返回 true,但我想使用更简写的方法并尝试:

has(values, ['page', 'length]') 但这返回 false。知道为什么吗?

https://lodash.com/docs/4.17.10#has

Lodash 有一个返回 true 的示例:

var object = { 'a': { 'b': 2 } };

_.has(object, 'a');
// => true

_.has(object, 'a.b');
// => true

_.has(object, ['a', 'b']);
// => true

是否有更优雅的方法来检查对象中的键,或者我应该保持解决方案的原样: has(values, 'page') && has(values, 'length')

最佳答案

_.has(object, path) <-你读过“路径”这个词吗?基本上,lodash 将使用该路径遍历对象。

我认为你可以使用普通的 javascript 来做到这一点:

let values = { page: "0", length: "12" },
    keys = Object.keys(values),
    result = ['page', 'length'].every(k => keys.includes(k));
    
console.log(result);

使用lodash:

let values = { page: "0", length: "12" },
    keys = _.keys(values),
    result = _.every(['page', 'length'], k => _.includes(keys, k));
        
console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.js"></script>

关于javascript - Lodash:_.has 检查返回 false 的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52934121/

相关文章:

python - 如何在 python 排序(列表)中指定 2 个键?

javascript - 如何避免在 HTML5 Canvas 中对特定颜色着色

javascript - 我可以使用 Edge 中的 JavaScript 在 Chrome 中打开 URL 吗?

java - GWT SuperDevMode 断点不起作用

Javascript 对象数组转换成字符串?

python - 如何根据defaultdict中的key累加值

javascript - 带有 PHP 脚本的模式,将编辑特定数据的信息

javascript - 在 Object.keys() 上使用 for..in 打印错误的键

java - 如何从 LinkedList 的对象访问 getter

mysql - PHP/Mysql 日历