使用Lodash检查空属性值

4

我正在尝试使用 lodash 检查以下内容是否为空:

data.payload{
      name: ""
}

我的代码:

import isEmpty from 'lodash.isempty';

if (isEmpty(data.payload)) {

以上是错误的,我该如何验证空值?
我在我的helper中有这段代码:
export const isEmpty = some(obj, function(value) {
  return value === '';
}

);

In my action I have

    if (isEmpty(data.payload)) {

我遇到了一个错误,ReferenceError: obj未定义,但是我已经传递了这个对象...


https://dev59.com/TlcP5IYBdhLWcg3wAmKy - Narasimha Reddy - Geeker
可能是lodash检查对象属性是否具有值的重复问题。 - Narasimha Reddy - Geeker
5个回答

5
如果您想使用 isEmpty() 来检查只包含假值的对象,则可以编写一个函数,该函数使用 values()compact() 从对象构造一个值数组:
const isEmptyObject = _.flow(_.values, _.compact, _.isEmpty);

isEmptyObject({});
// -> true

isEmptyObject({ name: '' });
// -> true

isEmptyObject({ name: 0 });
// -> true

isEmptyObject({ name: '...' });
// -> false

1
_.some(obj, function (value) { return value === "" })

你可以使用它,如果有任何空属性则返回 true,如果所有属性都已定义则返回 false。

obj是你的数据有效负载。 - Som Nath
谢谢,我是React的新手,我将它作为参数传递?如果(isEmpty(data.payload)){仍然不起作用。 - Bomber

1
你可以像这样使用来自 lodashisEmpty()

if(_.isEmpty(data.payload.name)){
}

or


import isEmpty from 'lodash.isempty';

if (isEmpty(data.payload.name)) {
}

0
_.isEmpty(_.omitBy(obj, _.isEmpty))

如果所有 obj 属性的值都设置为 "",则返回 true。


0

您可以使用 Lodash 中的 someevery 来通用地检查所有键是否满足条件或某些键是否满足条件。

["barney", 36, "test"].some(_.isEmpty); // false
["barney", 36, ""].some(_.isEmpty); // true

或者

["barney", 36, "test"].every(_.isEmpty); // false
["", [], ""].every(_.isEmpty); // true

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接