在Javascript中,我正在处理一些采用以下形式的JSON数据:
o = {
a: null,
b: null,
c: 1,
d: null
// ... 10 or so other properties that are either null or numerical
}
我正在尝试编写一个快速函数来处理整个对象,以确定是否有任何键的非空值。有任何建议,只需几行代码即可有效地完成这项工作?我的项目已经使用了underscore.js,所以如果这样可以加快速度或使其更简洁,那就更好了。
答案 0 :(得分:4)
单线,怎么样,
_.any(_.values(a), function (v) { return !_.isNull(v) });
如果至少有一个非空值,则返回true。
答案 1 :(得分:3)
var hasVal = false;
for (var prop in obj) {
hasVal = obj.hasOwnProperty(prop) && obj[prop] !== null;
if (hasVal) break;
}
答案 2 :(得分:1)
var has_a_null = _.chain(o).find(_.isNull).isNull().value();
或类似地:
var has_a_null = _(o).find(_.isNull) === null