首页 > 解决方案 > Javascript ES2015 检查对象中的命名键之一是否为空

问题描述

我有一个如下所示的数组

process:Array[3]
0:Object
    office_id:""
1:Object
    office_id:6
2:Object
   office_id:""

我想检查 office_id 命名键是否不为空

如果我找到至少一个不为空的 office_id,它将返回 true,否则如果全部为空,它将返回 false。

如您所见,office_id 的默认值是空字符串。

该对象是动态的,因为我正在使用一些输入选择表单来添加另一个具有 office_id 的对象,因此如果他们选择了另一个对象,则将添加另一个对象,其 office_id 等于该特定选择 id。

现在,出于验证目的,我需要检查对象进程是否包含带有数值的 office_id。

标签: javascriptecmascript-6

解决方案


使用简单的 for 循环和更有效的方式

function () {
  for(i = 0; i < process.length; i++){
    if (process[i].office_id){
      return true;
      break;
    }
  }

  return false;
}

使用 ES5 过滤器

function () {
  var filteredProcess = process.filter(function(pr) {
    if (pr.office_id){
      return true;
    }
  });

  return filterProcess.length ?
    true: 
    false;
}

推荐阅读