`
lokvin
  • 浏览: 162578 次
  • 性别: Icon_minigender_1
  • 来自: 地球
文章分类
社区版块
存档分类
最新评论

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 项

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

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


2.Array 的 join() 方法
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);



2.Array 的 contact(),slice(), 方法

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



3.Array 的 push(),pop() 方法,
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


4.Array 的 shift(),unshift() 方法,
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 结构

5.Array 的 reverse(),sort() 方法,
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



6.Array 的 splice() 方法,
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





分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics