首页 > 解决方案 > Lodash:_.has 检查返回 false 的键

问题描述

我有这个对象:

values = {page: "0", length: "12"}

我想检查密钥是否有pagelength所以我想出了这个解决方案Lodash

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

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

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

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')

标签: javascriptobjectkeylodash

解决方案


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

我认为你可以使用 vanilla 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>


推荐阅读