【问题标题】:How to check if all fields whose names are given in an array are non-null?如何检查在数组中给出名称的所有字段是否非空?
【发布时间】:2014-09-11 06:37:52
【问题描述】:

我有一个 javascript 数组,其中包含记录中的字段名称:

fields=["size", "Hold","drawn%" ,"expiry"]

如果所有这些字段中的值不为空,我需要执行一个操作。

我可以迭代数组并检查每个元素的非空条件。
有没有更好的方法来处理这个?其中数组的每个成员都必须根据特定条件进行评估,并返回累积的真或假。

【问题讨论】:

  • 你可以写一个函数,它以数组为参数,检查它,只有当所有元素都满足要求时才返回true
  • 对,那个函数已经存在了,叫Array#every

标签: javascript arrays


【解决方案1】:
fields.every(function(name, i) { return record[name] !== null; })

如果recordfields 中的每个字段都不为空,则返回true,否则返回false。

【讨论】:

  • 对于那些必须支持 IE8 及更低版本的用户,Array.prototype.every 不支持低于 IE9 的任何版本。但是,有一个有用的 polyfill here on the MDN
【解决方案2】:
Array.prototype.IsNull = function() {
        var arr = this;
        var isNull = false;
        for (var i = 0; i < arr.length; i++) {
            if (arr[i] == null) {
                isNull = true;
                break;
            }
        }
        return isNull;
    }; 

var fields=["size", "Hold","drawn%" ,"expiry"]; 
var isNull = fields.IsNull(); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-01
    • 2012-06-21
    • 2022-11-02
    • 2018-12-02
    • 1970-01-01
    • 1970-01-01
    • 2018-11-27
    • 2014-04-19
    相关资源
    最近更新 更多