0

オブジェクトで何かをする必要があります。残念ながら、私が (Titanium) でこれを行っているシステムは、値が null でないことを期待しています。ただし、入力が正常なオブジェクトを提供することは保証できません。次に例を示します。

var data = {
  foo: {
    bar: "foobar"
  }
};
function do_it(data) {
  do_something_with_non_null_value(data.foo.bar);
}

dataただし、次のいずれかである可能性は十分にあります。

var data = null;
var data = {
  foo: null
};
var data = {
  foo: {
    bar: null
  }
};

do_something_with_non_null_value()がクラッシュするのを防ぐために、深く簡潔な方法で null 以外の値をテストするにはどうすればよいですか?

Underscore.js の回答も歓迎します。

4

1 に答える 1

1

defaultsアンダースコアからメソッドを使用するのはどうですか?

function do_it(data) {

  var defaults = {
    foo: {
      bar: null
    }
  };

  data = _.defaults(data || {}, defaults);

  do_something_with_non_null_value(data.foo.bar);
}

データが次のいずれかの場合:

var data = null;
var data = {
  foo: null
};

オブジェクトを次のように変更します。

var data = {
  foo: {
    bar: null
  }
};
于 2013-07-01T13:30:39.363 に答える