如何确定对象中的任何值是否为非 null

How to determine if any values in an object are non-null?

本文关键字:是否 null 任何值 何确定 对象      更新时间:2023-09-26

在Javascript中,我正在处理一些JSON数据,其形式为:

o = {
  a: null,
  b: null,
  c: 1,
  d: null
  // ... 10 or so other properties that are either null or numerical
}

我正在尝试编写一个快速函数,该函数将处理整个对象以确定任何键是否有任何非空值。 有什么建议可以有效地做到这一点,只需几行代码吗? 我的项目已经使用了下划线.js,所以如果这可以加快速度或使其更简短,那就更好了。

单行呢,

_.any(_.values(a), function (v) { return !_.isNull(v) });

如果至少有一个非空值,它将返回 true。

var hasVal = false;
for (var prop in obj) {
    hasVal = obj.hasOwnProperty(prop) && obj[prop] !== null;
    if (hasVal) break;
}

您可以将_.find_.isNull结合使用:

var has_a_null = _.chain(o).find(_.isNull).isNull().value();

或类似:

var has_a_null = _(o).find(_.isNull) === null

演示:http://jsfiddle.net/ambiguous/t678w/