使用lodash检查空属性值

时间:2017-08-10 08:28:33

标签: reactjs lodash

我正在尝试使用lodash检查以下空值:

data.payload{
      name: ""
}

我的代码:

import isEmpty from 'lodash.isempty';

if (isEmpty(data.payload)) {

以上是错误的,如何验证空值?

我的助手中有这段代码:

export const isEmpty = some(obj, function(value) {
  return value === '';
}

);

在我的行动中我有

    if (isEmpty(data.payload)) {

我收到错误, ReferenceError:obj未定义,但我传递了该对象...

4 个答案:

答案 0 :(得分:2)

如果您想使用isEmpty()检查除 falsey 值之外的对象,您可以编写一个使用values()compact()来构建的函数来自对象的值数组:

const isEmptyObject = _.flow(_.values, _.compact, _.isEmpty);

isEmptyObject({});
// -> true

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

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

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

您可以使用isEmpty()这样的lodash

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

or


import isEmpty from 'lodash.isempty';

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

答案 3 :(得分:0)

您可以使用lodash中的someevery来检查所有键是否已通过条件或某些键已通过条件。

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

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