有A,B两个数组
数组A中有a,b,c,d四个元素,数组B中有1,0,0,2四个元素
现在要得到结果是 数组A:a,d 数组B:1,2 即删除B中为0的元素B[1],B[2]以及删除数组A中对应的A[1],A[2]我写的代码如下:for(i=0;i<B.length;i++){
if(B[i]<=0){
B.splice(i,1);
A.splice(i,1);
}
}
可以没有得到我要的效果,请高手指点。谢谢
数组A中有a,b,c,d四个元素,数组B中有1,0,0,2四个元素
现在要得到结果是 数组A:a,d 数组B:1,2 即删除B中为0的元素B[1],B[2]以及删除数组A中对应的A[1],A[2]我写的代码如下:for(i=0;i<B.length;i++){
if(B[i]<=0){
B.splice(i,1);
A.splice(i,1);
}
}
可以没有得到我要的效果,请高手指点。谢谢
{ if(isNaN(dx)||dx>this.length){return false;}
for(var i=0,n=0;i<this.length;i++)
{
if(this[i]!=this[dx])
{
this[n++]=this[i]
}
}
this.length-=1
}
a = ['1','2','3','4','5'];
alert("elements: "+a+"nLength: "+a.length);
a.remove(0); //删除下标为0的元素
alert("elements: "+a+"nLength: "+a.length);应该能理解吧?
等于说是把数组中指定的元素删除之后重构了一下
从一个数组中移除一个或多个元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素。
确实可以移除数据的,只不过你没考虑到当你移除了数据后,数组的长度是改变的。
所以下标相应的就出现了问题。只要从后往前找就没问题了:var a = new Array('a','b','c','d');
var b = new Array(1,0,0,2);
for(var i=b.length-1;i >-1;i--){
if(b[i] <=0){
b.splice(i,1);
a.splice(i,1);
}
}
alert(a);
alert(b);
var isMove=false;
for(var i=0;i<arrCus.length;i++){
if(arrCus.ulid==cElementId){
if(i!=arrCus.length){
var tmp=arrCus[i];
arrCus[i]=arrCus[i+1];
arrCus[i+1]=tmp;
}
isMove=true;
}
}
arrCus.pop();
}
比如:
var a = [1,2,3,4];
removeFromArray(a,3); //将会输出[1,2,4]//函数在这里
function removeFromArray(arr,i)
{
return arr.slice(0,i-1).concat(arr.slice(i));
}