繁体   English   中英

从数组jQuery中删除空元素

[英]Remove null elements from array jquery

我有我的HTML喜欢

  <input  type="text" class="form-control PaperSupply">` 
  <input  type="text" class="form-control PaperSupply">`
 <input  type="text" class="form-control PaperConsum">
 <input  type="text" class="form-control PC">

相同值的papersupply和PaperConsum的多个输入,在javascript中,我正在使用像这样的map函数为相同的值创建一个数组

 var paperSupply = $('.PaperSupply').map(function(){return $(this).val();}).get(); 
 var PaperConsum= $('.PaperConsum').map(function(){return $(this).val();}).get(); 

现在在json中,我希望如果这些数组的任何元素为null,则从数组中删除该元素。

例如:

{"paperSupply":["","2","3","","5"],"paperConsum":["1","","4","5","6"]}

如果这是上面代码中的json,那么我想要这样的json,

{"paperSupply":["2","3","5"],"paperConsum":["","4","6"]}

如果paperSupply的任何索引为null,则应该为null,然后还应该删除第二个数组的相同索引。

这是演示小提琴演示

您可以从.map()返回undefined来忽略空值。

在回调函数中,这是指每次迭代的当前DOM元素。 该函数可以返回要插入到结果集中的单个数据项或数据项数组。 如果返回数组,则将数组内的元素插入到集合中。 如果函数返回null或undefined,则不会插入任何元素。

var paperSupply = $('.PaperSupply').map(function () {
    return $(this).val().trim() || undefined; //use trim only if you want to discard inputs with space only
}).get();

演示: 小提琴


更新资料

var PaperConsum = [],
    $PaperConsums = $('.PaperConsum');
var paperSupply = $('.PaperSupply').map(function (i, el) {
    var value = $(this).val().trim(); //use trim only if you want to discard inputs with space only
    if (value) {
        PaperConsum.push($PaperConsums.eq(i).val() || '');
        return value;
    }
}).get();

console.log(paperSupply, PaperConsum)

演示: 小提琴

您可以添加过滤器:

$('.PaperSupply').map(function(){
    return $(this).val().trim();
}).get().filter(Boolean);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM