检查数组中的对象是空还是空

时间:2016-06-11 20:56:21

标签: javascript arrays

我有一个对象数组,我想看看任何对象中“key”的“值”是否为“null”。即:

var array = 
[{name:{} address : "something"},
{name:null address : "something2"},
{name:{} address : "something23"}]

在上面我想检查name个对象是否为空return false

任何人都可以帮助或指导相应的来源吗?

2 个答案:

答案 0 :(得分:4)

使用Array's some()

var data = [
  { name: ..., value: ... },
  ...
];
var hasUndefinedName = data.some(e => e.name===null || e.name===undefined);

或者,使用较旧的ES5语法:

...
var hasUndefinedName = data.some(function(e) {
  return (e.name===null || e.name===undefined);
});

当然,如果打算删除未定义name的元素,请使用Array's filter()

var data = [
  { name: ..., value: ... },
  ...
];
var filtered = data.filter(e => e.name!==null && e.name!==undefined);

答案 1 :(得分:1)

这就是你需要的:

var bool = false;
array.forEach(item => {
    bool = bool || Object.keys(item).some(key => item[key] == null);
});

如果bool等于true,那么数组中至少有一个元素的属性等于null;

由于==检查了===== null,我故意放置null符号代替undefined