js如何删除数组中的空项 var arr=['a','b','c','',,,,,];replaceEmptyItem(arr);function replaceEmptyItem(arr){ for(var i=0,len=arr.length;i<len;i++){ if(!arr[i]|| arr[i]==''){ arr.splice(i,1); len--; } }}这样仍然不对,求助。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 var arr=['a','b','c','',,,,,];replaceEmptyItem(arr);function replaceEmptyItem(arr){ for(var i=0,len=arr.length;i<len;i++){ if(!arr[i]|| arr[i]==''){ arr.splice(i,1); len--; i--; } }} len--;i--;不过这样容易出错,看起来还很乱。试试从后往前循环for(var i=(arr.length-1); i>=0; --i){ Array.prototype.dels=function(n) { if(n<0) return this; else return this.slice(0,n).concat(this.slice(n+1,this.length)); }var arr=['a','b','c','',,,,,'e','g',,,,];replaceEmptyItem(arr);function replaceEmptyItem(arr){ for(var i = arr.length-1;i>=0;i--){ if(arr[i] =="undefined"|| arr[i]=="" ||!arr[i]){ arr = arr.dels(i); } } alert(arr.join(","));} Array.prototype.del=function(n) { if(n<0) return this; else return this.slice(0,n).concat(this.slice(n+1,this.length));}var arr=['a','b','c','',,,,,];function replaceEmptyItem(arr){ for(var i=0,len=arr.length;i<len;i++){ if(!arr[i]|| arr[i]==''){ arr=arr.del(i); len--; i--; } } return arr;}alert(replaceEmptyItem(arr)); var arr = ['a', 'b', 'c', '', , , , , ];var newArr = new Array();function replaceEmptyItem(arr) { for (var i = 0, len = arr.length; i < len; i++) { if (arr[i] && arr[i] != '' && arr[i] != undefined) { newArr.push(arr[i]); } }}换种方式来执行,在i=4以后的类型,是属于undefined,你缺少了这种判断 噢,上面错了,!arr[i],有了undefined!1楼的是对的~ 要加i-- 谁能给我过滤出我这个指定元素 frame的 left.asp 和 right.asp都需要使用 hello.js 有办法 只下载一次吗? 求教,淘宝data-spm展开响应 请教各位大神,一个关于===恒等的问题 验证用户名,查询存在后,就一直存在的问题? 我想拖动层中的一个表格来带动拖动整个层 有谁能告诉我eval函数具体什么意思?长用在哪?起什么作用?谢谢 为什么得不到表单中radio button的值? 新手提问 classname 我制作了一个自动评分的网页,但是不知那里出错了,那位高手帮我看一下 问个简单问题? jquery更换img的src
replaceEmptyItem(arr);
function replaceEmptyItem(arr){
for(var i=0,len=arr.length;i<len;i++){
if(!arr[i]|| arr[i]==''){
arr.splice(i,1);
len--;
i--;
}
}
}
不过这样容易出错,看起来还很乱。试试从后往前循环
for(var i=(arr.length-1); i>=0; --i){
Array.prototype.dels=function(n) {
if(n<0)
return this;
else
return this.slice(0,n).concat(this.slice(n+1,this.length));
}
var arr=['a','b','c','',,,,,'e','g',,,,];
replaceEmptyItem(arr);
function replaceEmptyItem(arr){
for(var i = arr.length-1;i>=0;i--){
if(arr[i] =="undefined"|| arr[i]=="" ||!arr[i]){
arr = arr.dels(i);
}
}
alert(arr.join(","));
}
Array.prototype.del=function(n) {
if(n<0)
return this;
else
return this.slice(0,n).concat(this.slice(n+1,this.length));
}var arr=['a','b','c','',,,,,];function replaceEmptyItem(arr){
for(var i=0,len=arr.length;i<len;i++){
if(!arr[i]|| arr[i]==''){
arr=arr.del(i);
len--;
i--;
}
}
return arr;}
alert(replaceEmptyItem(arr));
var newArr = new Array();
function replaceEmptyItem(arr) {
for (var i = 0,
len = arr.length; i < len; i++) {
if (arr[i] && arr[i] != '' && arr[i] != undefined) {
newArr.push(arr[i]);
}
}
}
换种方式来执行,在i=4以后的类型,是属于undefined,你缺少了这种判断
1楼的是对的~ 要加i--