Array类:
首先 ^^
数组定义习惯上都用 [], 下面分别使用 new Array() 与 [] ,验证时间效率代码如下,看看谁用的时间少:
var a = new Date ; var arr, direct, b = []; for(var i=0; i<10000; i++) arr = new Array(); b.push(new Date() - a); a = new Date; for(var i=0; i<10000; i++) direct = []; b.push(new Date() - a); alert(b.join(" : "));
以下总结参考 JS 高级程序设计
1 创建 Array 类对象:
(1) var numbers= new Array();//习惯上是var numbers= []; numbers [0] = "one"; numbers [2] = "two"; numbers [3] = "three"; numbers [35] = "four"; alert(numbers [0]); //outputs “one” alert(numbers [35]); //outputs ”four” alert(numbers.length); //outputs “36”
(2) var numbers= new Array(15);// 习惯上是var numbers= [15]; alert(numbers [0]); //outputs "undefined" alert(numbers.length); //outputs "15"
(3) var numbers= new Array("one","two","three");//习惯上是var numbers= ["one","two","three"]; alert(numbers [0]); //outputs "undefined" numbers [10] = "four"; alert(numbers.length); //outputs "11"
(4)用字面量表示定义Array对象: var numbers= ["one","two","three"]; alert(numbers [0]); //outputs "undefined" numbers [10] = "four"; alert(numbers.length); //outputs "11"
2 Array 对象覆盖 toString() 方法和 valueOf() 方法,返回字符串。
var numbers= ["one","two","three"]; alert(numbers.toString()); //outputs "one,two,three" alert(numbers.valueOf()); //outputs "one,two,three"
3 toLocalString() 方法。
var numbers= ["one","two","three"]; alert(numbers.toLocaleString()); //outputs "one,two,three"
4 join() 方法,,用来连接字符串的值。
var numbers= ["one","two","three"]; alert(numbers.join(",")); //outputs "one,two,three" alert(numbers.join("-and-")); //outputs "one-and-two-and-three" alert(numbers.join("")); //outputs "onetwothree" alert(numbers.join(")(")); //outputs "one)(two)(three"
5 concat() 方法。
var numbers= ["one","two","three"]; var arr = numbers; var numbers2=arr.concat("four","five"); alert(numbers2.toString()); //outputs "one,two,three,four,five" alert(numbers.toString()); //outputs "one,two,three" //alert(numbers.concat("four","five")); //outputs "one,two,three"
6 slice() 方法。
var numbers = ["one","two","three","four","five","six"]; var arr = numbers; var numbers2 = arr.slice(1); alert(numbers2.toString()); //outputs "two,three,four,five,six" var numbers3 = arr.slice(1,4); alert(numbers3.toString()); //outputs "two,three,four"
7 调用 push() 和 pop() 方法实现后进先出的结构(栈 stack )。
var stack= ["one","two","three"]; stack.push("four"); stack.push("five","six"); alert(stack.toString()); //outputs "two,three,four,five,six" var removelast=stack.pop(); alert(removelast); //outputs "six" var removelast=stack.pop(); alert(removelast); //outputs "five" alert(stack.toString()); //outputs "two,three,four"
8 调用 shift() 和 push() 方法实现后进后出结构(队列 queue )。
var queue= ["one","two","three"]; queue.push("four"); alert(queue.toString()); //outputs "one,two,three,four" var removefirst = queue.shift(); alert(removefirst); //outputs "one" alert(queue.toString()); //outputs "two,three,four"
9 其它。
(1)unshift() 方法把一个项添加在数组的第一个位置。
(代码的上面部分可以用 8 的代码)
var addfirst = queue.unshift("one"); //alert(addfirst); //outputs "4" alert(queue.toString()); //outputs "one,two,three,four"
(2)reverse() 方法颠倒数组项顺序。
代码衔接上面的 unshift() 。
queue.reverse(); alert(queue.toString()); //outputs "four,three,two,one"
( 3 ) sort() 方法按数组项的升序排列。
var queue= ["one","two","three"]; queue.sort(); alert(queue.toString()); //outputs "one,three,two"
( 4 ) splice() 方法。第一参数是指起始位置,第二个参数是要删除项的个数,第三个参数是要插入的项。
var queue= ["one","two","three","four","five"]; queue.splice(0,2); alert(queue.toString()); //outputs "three,four,five",delete one and two queue.splice(1,1,"and1","and2","and3"); alert(queue.toString()); //outputs "three,and1,and2,and3,four"