[英]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.