js 中的 Array

javascript 中有 Array 类 (其实说 javascript 中有类不是很严密,暂且暂且)


var aValues = new Array();
var aValues = new Array(10); // 声明有 10 个项的 Array 对象

var arr = new Array();
arr[0]="thanks";
arr[1]="god";
arr[2]="its";
arr[3]="friday";

var aColors = new Array("red", "yellow", "blue");//直接用 value 声明数组

var arr2 = ["you","are","right"];//用字面量声明数组


js 中的数组可以动态扩大,例如:


var arr = [1,2,3];
alert(arr.length); // 等于 3

arr[15]=100;
alert(arr.legth);// 等于16
//其中数组的 3..15 项是 undefined

据说js 数组中最多有 4,294,967,295 项

[b]1.Array 的 toString() 和 valueOf() 方法[/b]
toString(), 和 valueOf() 返回的是用 , 连接的数组项的字符串


var arr = ["a","b","c"];
document.write(arr.toString());//返回 "a,b,c"
document.write(arr.valueOf());//返回 "a,b,c"


[b]2.Array 的 join() 方法[/b]
join() ,将数组中的项用 join 的参数连接成一个字符串

var arr = ["a","b","c"];
arr.join(","); // 返回与 toString(), valueOf() 相同 , "a,b,c"
arr.join("*");//"a*b*c"
arr.join(""); // 用空字符串连接数组项,这个比较有用可以用数组来实现,类似 java 的 StringBuffer 类, 提高 js 中字符串连接效率

join() 方法是将 Array 转换为 String 的方法,
对应的 String 类中的 split() 方法可以将 String 转为 Array,类如

var str = "red,blue,green";
var arr = str.split(","); // 将 String 转换为 Array
document.write(arr.length);



[b]2.Array 的 contact(),slice(), 方法[/b]

contact() 方法将内容添加的数组后面, 注意它返回新的数组,原 Array 内容不变。

var arr = ["you","are","right"];
var arr1 = arr.concat(["a","b"]);
document.write(arr.toString());//you,are,right
document.write("<br>");
document.write(arr1.toString());//you,are,right,a,b


slice() 返回数组片段, 可有有两个参数,1起始位置,2 结束位置 (不包括)。
如果只有一个参数从起始位置一直到结尾。
注意 slice() 也是返回新 Array


var arr = ["you","are","right", "a", "b", "c"];
var arr1 = arr.slice(1);
var arr2 = arr.slice(2,4);

document.write(arr.toString());//返回 you,are,right,a,b,c
document.write("<br>");
document.write(arr1.toString());//返回are,right,a,b,c
document.write("<br>");
document.write(arr2.toString());//返回right,a



[b]3.Array 的 push(),pop() 方法, [/b]
Array 可以实现 Stack 结构,通过以上的两个方法。
push() 将内容添加到末尾
pop() 移除末尾项,并返回末尾项

例如:

var stack = ["rich", "maddy", "yuzhou"];
stack.push("flex");
stack.push("jade");

document.write(stack.toString());//rich,maddy,yuzhou,flex,jade
document.write("<br>")
var name = stack.pop();
document.write(name);//jade
document.write("<br>")
document.write(stack.toString());//rich,maddy,yuzhou,flex


[b]4.Array 的 shift(),unshift() 方法, [/b]
shift() 移除并返回第一项
unshfit() 将传入项放到第一的位置,其余项向后移动

var stack = ["rich", "maddy", "yuzhou"];
var name = stack.shift();
document.write(stack.toString());//"maddy,yuzhou"
document.write("<br>")
document.write(name);//"rich"
stack.unshift("flex");
document.write(stack.toString());//flex,maddy,yuzhou



用 push() 和 shift() 可以实现 queue 结构

[b]5.Array 的 reverse(),sort() 方法, [/b]
reverse() 将数组项 反转
sort() 将数组项按字符数序 排序


var stack = ["rich", "maddy", "yuzhou"];
document.write(stack.toString());//rich,maddy,yuzhou
document.write("<br>")
stack.reverse();
document.write(stack.toString());//yuzhou,maddy,rich

注意对 Number 的 sort() 是按照字符串比较的
var stack = [10,2,15,5,6];
document.write(stack.toString());//10,2,15,5,6
document.write("<br>")
stack.sort();
document.write(stack.toString());//10,15,2,5,6



[b]6.Array 的 splice() 方法, [/b]
splice() 是比较复杂的一个方法

var stack = ["yuzhou","flex","rich","maddy","andy","grace","jade"];
document.write(stack.toString());//yuzhou,flex,rich,maddy,andy,grace,jade
document.write("<br>")
stack.splice(0,3);//从第一项开始删除 3个
document.write(stack.toString());//maddy,andy,grace,jade


var stack = ["yuzhou","flex","rich","maddy","andy","grace","jade"];
document.write(stack.toString());//yuzhou,flex,rich,maddy,andy,grace,jade
document.write("<br>")
stack.splice(1,0,"mike.d","cory");//从第二项,不删除,插入 "mike.d", "cory"
document.write(stack.toString());//yuzhou,mike.d,cory,flex,rich,maddy,andy,grace,jade


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值