怎样将xx1[2,1,3]和xx2[a,b,c]这两个数组合并成 var xx = [[2,"a"],[1,"b"],[3,"c"]];呢?
呵呵,这个是要写代码的,没有什么直接的方法:var xx1=[2,1,3]; var xx2=["a","b","c"]; var xx = []; for (var i=0;i<Math.min(xx1.length,xx2.length);i++){ xx[i]=[xx1[i],xx2[i]] } alert(xx.join("\n")) alert(xx.sort().reverse().join("\n"))
<script> var xx1=[2,1,3] var xx2=["a","b","c"] var xx=new Array(); for(i=0;i<xx1.length;i++)xx[3-xx1[i]]=xx2[i]; alert(xx); </script>
用关联数组啊! <script language="JavaScript"> <!-- var xx1 = new Array(2,1,3); var xx2 = new Array('a','b','c'); var xx = new Array(); for (i=0;i<xx1.length;i++){ xx[xx1[i]]=xx2[i]; } xx1=xx1.sort().reverse(); for (i=0;i<xx1.length;i++){ document.write(xx1[i]+':'+xx[xx1[i]]+'<br>'); } //--> </script>
发现一个问题 var xx1 = new Array(2,11,3); var xx2 = new Array('a','b','c'); 我希望按数值大小显示,不是字符顺序,希望结果 xx1(11,3,2) xx2(b,c,a) 怎么办?
呵呵,sort的比较函数可以自己指定的:function emu(a,b){ return a[0]-b[0]; } var xx1=[2,11,3]; var xx2=["a","b","c"]; var xx = []; for (var i=0;i<Math.min(xx1.length,xx2.length);i++){ xx[i]=[xx1[i],xx2[i]] } alert(xx.join("\n")) alert(xx.sort(emu).reverse().join("\n"))
有两个相关的数组:
xx1 为 2 1 3
xx2 为 a b c
根据xx1由大到小排序,形成:
xx1 为 3 2 1
xx2 为 c a b
alert(xx.join("\n"))
alert(xx.sort().reverse().join("\n"))
b=xx1[1];
c=xx1[2];
if(a<b){
if(b<c){t=a;a=c;c=t;}
else{
if(c<a){t=a;a=b;b=t;}
else{t=a;a=b;b=c;c=t}
}
}else{
if(b<c){t=b;b=c;c=t}
}xx1[0]=a;
xx1[1]=b;
xx1[2]=c;
var xx = [[2,"a"],[1,"b"],[3,"c"]];呢?
var xx2=["a","b","c"];
var xx = [];
for (var i=0;i<Math.min(xx1.length,xx2.length);i++){
xx[i]=[xx1[i],xx2[i]]
}
alert(xx.join("\n"))
alert(xx.sort().reverse().join("\n"))
var xx1=[2,1,3]
var xx2=["a","b","c"]
var xx=new Array();
for(i=0;i<xx1.length;i++)xx[3-xx1[i]]=xx2[i];
alert(xx);
</script>
<script language="JavaScript">
<!--
var xx1 = new Array(2,1,3);
var xx2 = new Array('a','b','c');
var xx = new Array();
for (i=0;i<xx1.length;i++){
xx[xx1[i]]=xx2[i];
}
xx1=xx1.sort().reverse();
for (i=0;i<xx1.length;i++){
document.write(xx1[i]+':'+xx[xx1[i]]+'<br>');
}
//-->
</script>
var xx1 = new Array(2,11,3);
var xx2 = new Array('a','b','c');
我希望按数值大小显示,不是字符顺序,希望结果
xx1(11,3,2)
xx2(b,c,a)
怎么办?
return a[0]-b[0];
}
var xx1=[2,11,3];
var xx2=["a","b","c"];
var xx = [];
for (var i=0;i<Math.min(xx1.length,xx2.length);i++){
xx[i]=[xx1[i],xx2[i]]
}
alert(xx.join("\n"))
alert(xx.sort(emu).reverse().join("\n"))