【问题标题】:Checking the presence of some values in an array of hashes in jQuery or Javascript在 jQuery 或 Javascript 中检查哈希数组中是否存在某些值
【发布时间】:2018-05-28 13:44:08
【问题描述】:

我想检查某个键的值在数组或散列中是否不为空或空白

array = [{a:'1', b:''}, {a:'2', b:''}, {a:'3', b:null}]

尝试断言所有b 都存在(没有空白或零)。 我目前使用 jQuery 的方法

function checkPresence(array){
    result = false;
    $.each(array, function (i, field) {
        if(field['b'] !== '' && field['b'] !== null){
            result = true;
            return false;
        };
    });
    return result;
}

我相信/希望 jQuery 和 Javascript 有更好的解决方案,但不知道(现在)。

你能帮忙吗?

【问题讨论】:

  • 您可以通过this
  • array.every(function(e){ return (Object.keys(e).indexOf('b') > -1) && e['b'] !== null; }); jsfiddle.net/btwuLm8s
  • 那么,你到底想在什么条件下返回什么?

标签: javascript jquery arrays hash


【解决方案1】:
var array = [{a:'1', b:''}, {a:'2', b:''}, {a:'3', b:null}]
array.some(item => !item.b)
// true if anything null or undefined or ""

【讨论】:

    【解决方案2】:

    使用 array.prototype.some 可以轻松完成:

    var array = [{a:'1', b:''}, {a:'2', b:''}, {a:'', b:null}];
    var res = array.some(e => e.b);
    console.log(res);

    var array = [{a:'1', b:''}, {a:'2', b:'something'}, {a:'', b:null}];
    var res = array.some(e => e.b);
    console.log(res);

    【讨论】:

    • 只为那些不使用箭头函数的人return array.some(function(e){ if(e.value !== '') return true; });
    【解决方案3】:

    你可以使用javascript的foreach函数,它是array的函数。

    function checkPresence(array){
    
        array.foreach(function(element) {
            if(field['b'] === '' || field['b'] === null)
                return false;
        });
    
        return true;
    }
    

    我建议您查看https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference 以了解有关 javascript 的更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-19
      • 2012-09-03
      • 2013-05-24
      • 1970-01-01
      • 2014-05-12
      • 2012-02-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多