0

Javascript では、次の形式をとる JSON データを処理しています。

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

オブジェクト全体を処理して、いずれかのキーに null 以外の値があるかどうかを判断する簡単な関数を作成しようとしています。これを効率的に、わずか数行のコードで行うための提案はありますか? 私のプロジェクトでは既に underscore.js を使用しているため、それによって処理が高速化または簡潔化されればなおさらです。

4

3 に答える 3

5

ワンライナーはどうですか、

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

null 以外の値が少なくとも 1 つある場合は true を返します。

于 2012-06-21T06:20:07.517 に答える
3
var hasVal = false;
for (var prop in obj) {
    hasVal = obj.hasOwnProperty(prop) && obj[prop] !== null;
    if (hasVal) break;
}
于 2012-06-21T05:43:03.197 に答える
1

_.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/

于 2012-06-21T06:26:54.163 に答える