我有这个对象:
值 = {页:“0”,长度:“12”}
我想检查键是否有 page
和 length
因此我使用 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/