在Java脚本中检查某些内容是空的吗?

tnkciper  于 2022-09-21  发布在  Java
关注(0)|答案(22)|浏览(186)

如何检查Java脚本中的变量是否为空?

if(response.photo) is empty {
    do something
else {
    do something else
}

response.photo来自JSON,有时可能是空的,空的数据单元格!我想确认一下它是不是空的。

9nvpjoqh

9nvpjoqh1#

这取决于你所说的“空”是什么意思。最常见的模式是检查变量是否为undefined。许多人也会执行空值检查,例如:
if (myVariable === undefined || myVariable === null)...

或者,用一种更简短的形式:
if (myVariable || myVariable === null)...

zsohkypk

zsohkypk2#

var message_1 = message.trim();     
if (message_1.length > 0) { 
    // to do
}
twh00eeo

twh00eeo3#

只是要小心我在这里看到的所有东西:

typeof object === 'object' && Object.keys(object).length === 0)确实在检查对象是否为空。但你知道吗,在脚本中的Date也被认为是对象?

所以,如果你这样做了:

const shouldNotbeEmpty = new Date(Date.now())
isEmpty(shouldNotbeEmpty) // this will return true when it should not

解决这个问题的唯一方法是检查对象是否是Date示例:

typeof value === "object" && Object.keys(value).length === 0 && !value instanceof Date

所以大概是这样的:

const isObject = value => typeof value === "object" && Object.keys(value).length === 0
const isString = value => typeof value === "string" && value.trim().length === 0
const isEmpty = value => {
  const isDate = value instanceof Date
  return value === undefined || value === null || (isObject(value) && !isDate) || isString(value)
}

exports.isEmpty = isEmpty
34gzjxbg

34gzjxbg4#

我的解决方案是:

function isEmpty(object) {
  return (
    (!object)
    || (object === undefined)
    || (object === null)
    || (object === '')
    || ((object?.length !== undefined) && (object.length === 0))
    || (typeof object === 'object' && Object.keys(object).length === 0) 
  );
}

用笑话进行测试:

describe('isEmpty should return `false` when the parameter have some truthy value.', () => {
  test('Empty objects should return true', () => {
    expect(utils.isEmpty([])).toBe(true);
    expect(utils.isEmpty({})).toBe(true);
    expect(utils.isEmpty('')).toBe(true);
    expect(utils.isEmpty(undefined)).toBe(true);
    expect(utils.isEmpty(null)).toBe(true);
  });

  test('Truthy objects should return false', () => {
    expect(utils.isEmpty([1])).toBe(false);
    expect(utils.isEmpty({a: undefined})).toBe(false);
    expect(utils.isEmpty({a: 5})).toBe(false);
    expect(utils.isEmpty({a: 5, b: 6, c: undefined})).toBe(false);
    expect(utils.isEmpty('f00')).toBe(false);
    expect(utils.isEmpty('0')).toBe(false);
  });
})
qij5mzcb

qij5mzcb5#

function isEmpty(variable) {
  const type = typeof variable
  if (variable === null) return true
  if (type === 'undefined') return true
  if (type === 'boolean') return false
  if (type === 'string') return !variable
  if (type === 'number') return false
  if (Array.isArray(variable)) return !variable.length
  if (type === 'object') return !Object.keys(variable).length
  return !variable
}
fykwrbwg

fykwrbwg6#

const isEmpty = val => val == null || !(Object.keys(val) || val).length;

wmvff8tz

wmvff8tz7#

这里有一个更简单(简短)的解决方案来检查空变量。此函数用于检查变量是否为空。提供的变量可能包含混合值(NULL、UNDEFINED、ARRAY、OBJECT、STRING、INTEGER、Function)。

function empty(mixed_var) {
 if (!mixed_var || mixed_var == '0') {
  return true;
 }
 if (typeof mixed_var == 'object') {
  for (var k in mixed_var) {
   return false;
  }
  return true;
 }
 return false;
}

//   example 1: empty(null);
//   returns 1: true

//   example 2: empty(undefined);
//   returns 2: true

//   example 3: empty([]);
//   returns 3: true

//   example 4: empty({});
//   returns 4: true

//   example 5: empty(0);
//   returns 5: true

//   example 6: empty('0');
//   returns 6: true

//   example 7: empty(function(){});
//   returns 7: false
6l7fqoea

6l7fqoea8#

如果数组为空,我会错过什么?无钥匙物体..。Falseness Const isEmpty=o=>Array.is数组(O)&&!o.Join(‘’).long||typeof o==‘Object’&&!Object.key(O).long||!(+Value);

hgc7kmma

hgc7kmma9#

如果您正在寻找与PHP的empty函数等效的函数,请查看以下内容:

function empty(mixed_var) {
  //   example 1: empty(null);
  //   returns 1: true
  //   example 2: empty(undefined);
  //   returns 2: true
  //   example 3: empty([]);
  //   returns 3: true
  //   example 4: empty({});
  //   returns 4: true
  //   example 5: empty({'aFunc' : function () { alert('humpty'); } });
  //   returns 5: false

  var undef, key, i, len;
  var emptyValues = [undef, null, false, 0, '', '0'];

  for (i = 0, len = emptyValues.length; i < len; i++) {
    if (mixed_var === emptyValues[i]) {
      return true;
    }
  }

  if (typeof mixed_var === 'object') {
    for (key in mixed_var) {
      // TODO: should we check for own properties only?
      //if (mixed_var.hasOwnProperty(key)) {
      return false;
      //}
    }
    return true;
  }

  return false;
}

http://phpjs.org/functions/empty:392

px9o7tmv

px9o7tmv10#

检查是否有未定义:

if (typeof response.photo == "undefined")
{
    // do something
}

这将完成vb的IsEmpty的等价物。如果myvar包含任何值,即使是NULL、空字符串或0,它也不是“空的”。

要检查变量或属性是否存在,例如它已声明,但可能尚未定义,您可以使用in操作符。

if ("photo" in response)
{
    // do something
}
8xiog9wr

8xiog9wr11#

if (myVar == undefined)

将查看var是否已声明但未初始化。

irtuqstp

irtuqstp12#

如果要测试空字符串:

if(myVar === ''){ // do stuff };

如果要检查已声明但未定义的变量:

if(myVar === null){ // do stuff };

如果您正在检查可能未定义的变量:

if(myVar === undefined){ // do stuff };

如果同时选中两个变量,即变量为空或未定义:

if(myVar == null){ // do stuff };
2eafrhcq

2eafrhcq13#

这样做怎么样?

JSON.stringify({}) === "{}"

qojgxg4l

qojgxg4l14#

只要将变量放在IF条件中,如果变量有任何值,它将返回TRUE或FALSE。

if (response.photo){ // if you are checking for string use this if(response.photo == "") condition
 alert("Has Value");
}
else
{
 alert("No Value");
};
rkttyhzu

rkttyhzu15#

对JSON键的空检查取决于用例。对于常见用例,我们可以测试以下内容:

1.不是null
1.不是undefined
1.非空字符串''
1.非空对象{}``[](数组为对象)

职能:

function isEmpty(arg){
  return (
    arg == null || // Check for null or undefined
    arg.length === 0 || // Check for empty String (Bonus check for empty Array)
    (typeof arg === 'object' && Object.keys(arg).length === 0) // Check for empty Object or Array
  );
}

为以下项返回TRUE:

isEmpty(''); // Empty String
isEmpty(null); // null
isEmpty(); // undefined
isEmpty({}); // Empty Object
isEmpty([]); // Empty Array

相关问题