如何删除JavaScript数组中的空白元素?

Sp0T

我有以下实现。

Array.prototype.abc = function(condition, t){
    var arr = [];
    for( var i = 0; i < this.length; i++){
        arr.push(condition(this[i],t));         
    }
    return arr;
};

var a = [1,2,3,4];
var t = 2;

alert(a.abc( function(item,diviser){
    if(item % diviser === 0) { return item; }
},t));

结果应该是[2,4]相反,我得到了[,2,,4]

我尝试了以下条件,但始终会返回上述结果。

if(condition(this[i],t) !== false){ arr.push(condition(this[i],t)); }

我在做的时候在做这个

if(item % diviser === 0) { return item; } else { return false; }

false条件不适用于'false'true'true'就此而言我在其他部分返回的任何值。在实际的实现中,我没有这个else部分。我知道我们可以使用splice或其他方法删除空白部分。但是,即使我没有返回任何内容,我也不明白,为什么在创建时会出现空白。甚至在使用if条件之前,arr.push它也不起作用。到底发生了什么,以及如何删除数组中的空白?

拉贾普布(Rajabrabhu Aravindasamy)

您必须检查返回的值是否undefined来自callBack

for( var i = 0; i < this.length; i++){
  var x = condition(this[i],t);
  if(typeof x !== "undefined") arr.push(x);         
}

您已进行2次不同的尝试来解决此问题,但由于失败,

  1. !== false,您的callBack将返回数字或未定义。因此,严格相等将始终失败,并且由于操作数的类型不同,因此始终将其评估为false。

  2. if(item % diviser === 0) { return item; } else { return false; }当条件失败时,它将返回false,因此false将被推入数组。而且它不会跳过那个推动部分。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Javascript:从对象数组中删除元素

来自分类Dev

从Javascript中的多维数组中删除元素

来自分类Dev

如何从数组中删除元素?

来自分类Dev

删除仅空白数组元素

来自分类Dev

从数组javascript中删除元素(相反的交集)

来自分类Dev

如何删除mongodb数组中的元素

来自分类Dev

如何同时从数组中删除多个元素

来自分类Dev

如何从数组中删除所有元素

来自分类Dev

如何删除json数组元素中的对象?

来自分类Dev

如何从Mongodb中删除数组元素

来自分类Dev

如何从数组中删除嵌套元素?

来自分类Dev

从JavaScript中的对象数组中删除元素

来自分类Dev

如何使用键从数组中删除元素

来自分类Dev

如何从数组中删除特定元素

来自分类Dev

如何从JavaScript对象数组中删除特定元素?

来自分类Dev

如何删除JavaScript中的空白框?

来自分类Dev

如何从数组中删除元素?

来自分类Dev

如何遍历对象数组然后删除JavaScript中的每个元素

来自分类Dev

如何从满足条件的数组中删除元素

来自分类Dev

如何删除数组元素中的空格?

来自分类Dev

从Javascript数组中删除某些元素

来自分类Dev

如何从Perl中的数组中删除元素?

来自分类Dev

如何删除mongodb数组中的元素

来自分类Dev

如何删除javascript数组元素?

来自分类Dev

如何使用JavaScript从数组中删除元素

来自分类Dev

如何从猫鼬的数组中删除元素

来自分类Dev

JavaScript slice() 不会从数组中删除元素

来自分类Dev

JavaScript:如何从数组中删除特定元素

来自分类Dev

如何根据javascript中的值将空白元素添加到数组中