Javascript 数组
1、数组元素可以是大杂烩,不必是清一色
<script language="javascript"> //测试1 function test1(){ var d = new Date(); var arr = [‘test‘, ‘is‘,‘ok‘,3,d]; alert(arr[4]); } test1(); </script>
2、数组本身就是对象
//测试2 function test2(){ var arr = []; arr[‘1‘] = ‘test‘; arr[‘2‘] = ‘is‘; arr[‘3‘] = ‘ok‘; alert(arr[2]); } test2(); //测试2b function test2b(){ var arr = []; arr[‘a‘] = ‘test‘; arr[‘b‘] = ‘is‘; arr[‘c‘] = ‘ok‘; alert(arr[2]); alert(typeof arr); } test2b();
测试2的结果是什么呢? 结果是‘is‘,可见数组索引数值和字符串型数值具有同样的功能。
测试2b的结果是什么呢?结果是undefined。‘a‘, ‘b‘, ‘c‘作为arr的属性,保存在arr对象中。
3、数组也可以像Java一样排序
数组有sort() 方法,可以对数组进行排序。但若数组是由混合类型(如上述第1点中的数组)时,如何比较呢?答案是你可以自定义比较函数。
//测试1 function test1(){ var d = new Date(); var arr = [‘test‘, ‘is‘,‘ok‘,30,‘4‘,d]; arr.sort(); alert(arr.join(‘,‘)); //数据转换 function convert(a){ if(typeof a == ‘number‘){ a = a + ‘‘; }else if (typeof a == ‘object‘){ if(/Date/.test(a.constructor)){ //alert(‘here‘); a = a.getTime() + ‘‘; } } return a; } //排序比较函数 function compare(a,b){ var c = convert(a); var d = convert(b); //alert(‘a:‘ + c + ‘,b:‘ + d); if(c>d){ return 1; }else if(c<d){ return -1; }else{ return 0; } } arr.sort(compare); alert(arr.join(‘,‘)); } test1(); </script>
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。