jJavaScript 数组

<!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:"/@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:宋体; mso-font-kerning:1.0pt;} p {mso-margin-top-alt:auto; margin-right:0cm; mso-margin-bottom-alt:auto; margin-left:0cm; mso-pagination:widow-orphan; font-size:12.0pt; font-family:宋体; mso-bidi-font-family:宋体;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:595.3pt 841.9pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:42.55pt; mso-footer-margin:49.6pt; mso-paper-source:0; layout-grid:15.6pt;} div.Section1 {page:Section1;} -->

【摘抄】本文介绍如下几个方面的内容:

1. 如何创建数组

2. 如何对数组进行操作(添加, 删除, 读取)

3. 数组常见方法和属性

如何创建一个数组, 一般地根据初始化设定简单分为3:

1. 单纯创建数组:

var arr=new Array();

要点:new 关键字创建数组对象Array(),Array() 对象是一个本地类, 可以用new 创建一个对象后使用

2. 创建数组的同时规定数组大小:

var arr=new Array(10);// 这里就创建了一个初始化大小为10 的数组

注意: 当使用数组大小操作初始化大小时, 数组会自动被撑大 , 不会像C 语言那样发生错误. 动态增长是js 数组的一个性质. 另外,js 中支持最大数组长度为

4294967295

3. 直接初始化:

var arr=new Array("love","hate","pain");// 这里就直接初始化了数组

var arr=["happy","cute","scare"];// 括号也可以声明一个数组对象

当然, 类似C 语言, 可以定义23 维和多维的数组, 例如:

<script language="javascript">

    var myArray = new Array();

    for(var i=0;i<10;i++ )...{

        myArray[i]=new Array();

        myArray[i][0]=Math.floor(Math.random()*10);

        myArray[i][1]=Math.floor(Math.random()*10);

        myArray[i][2]=Math.floor(Math.random()*10);

        myArray[i][3]=Math.floor(Math.random()*10);

        myArray[i][4]=Math.floor(Math.random()*10);

        myArray[i][5]=Math.floor(Math.random()*10);

        myArray[i][6]=Math.floor(Math.random()*10);

        myArray[i][7]=Math.floor(Math.random()*10);

        myArray[i][8]=Math.floor(Math.random()*10);

    }

   

    myArray.sort( function(x, y) ...{

        return (x[0]==y[0])?((x[4]==y[4])?(x[8]-y[8]):(x[4]-y[4])):(x[2]-y[2])

    });

    for(var i=0;i<myArray.length;i++ )...{

        document.write(myArray[i].join(",") + "<br/>");

    }

</script>

数组的属性:length

arr.length 返回数组arr 的长度, 常见于循环中对数组的遍历, 比如:

for(var i=0;i<arr.length;i++){

执行部分

}

数组元素的访问: arr[index], 其中index 表示索引即数组基数,0 开始, 共有arr.length 个元素. 比如: arr[0] 访问第一个数组元素,arr[1] 访问第二个数组元素....

次类推 数组的操作方法: 先概览下下面的这些操作数组常用的方法(13)

toString(),valueOf(),toLocalString(),join(),split(),slice(),concat(),

pop(),push(),shift(),unshift(),sort(),splice()

下面逐一分析这些方法的功能和用法.

toString(),valueOf(),toLocalString():

功能: 返回数组的全部元素

: 数组名也可以返回整个数组

代码:

    var m=["am","bm","cm"];// 用括号声明一个数组对象

    alert(m.toString());//toString() 返回数组对象的所有内容, 逗号分割,am,bm,cm

    alert(m.valueOf());//valueOf() 也返回数组对象的所有内容

    alert(m.toLocaleString());//toLocaleString() 也返回数组对象的所有内容, 但有地区语言区别, 暂不研究

    alert(m);// 数组名也返回数组对象的所有内容

join():

功能: 把数组各个项用某个字符() 连接起来, 但并不修改原来的数组

代码:

    var m=["am","bm","cm"];// 用括号声明一个数组对象

    var n=m.join("---");//--- 连接am,bm,cm.

    alert(m.toString());//m 并没有被修改, 返回am,bm,cm

    alert(n);//n 是一个字符串,am---bm---cm

split():

功能: 把一个字符串按某个字符() 分割成一个数组, 但不修改原字符串

代码:

    var str="I love maomao,I am caolvchong";

    var arr=str.split("o");// 按字符ostr 字符串分割成一个数组

    alert(arr);// 输出整个数组

slice(): 返回某个位置开始( 到某个位置结束)数组部分, 修改原数组

代码:

    var m=["am","bm","cm","dm","em","fm"];

    var n=m.slice(2);// 返回第二个元素bm 后面的元素,cm,dm,em,fm

    var q=m.slice(2,5);// 返回第二个元素后到第五个元素,cm,dm,em

    alert(n);

    alert(q);

数组对象的栈操作:

push(): 数组末尾添加 一个项

pop(): 删除 数组最后一个项

代码:

    var m=["am","bm","cm","dm","em","fm"];

    m.push("gm");// 在数组末尾 添加元素gm

    alert(m);

    m.pop();// 删除数组最后 一个元素gm

    alert(m);

数组对象的队列 操作:

unshift():组头 添加一个项

shift(): 删除数组第一个项

代码:

    var m=["am","bm","cm","dm","em","fm"];

    m.unshift("gm");// 在数组第一个元素位置添加元素gm

    alert(m);

    m.shift();// 删除数组第一个元素gm

    alert(m);

sort(): 数组按字符的ASCII 码进行排序, 修改数组对象

: 即便是数字数组, 也将转化为字符串来进行比较排序

代码:

    var m=["am","fm","gm","bm","em","dm"];

    m.sort();// 按字母序排序

    alert(m);

concat(): 在数组尾添加元素, 但不修改数组对象

代码:

    var m=["am","bm"]

    var n=m.concat("cm");// 添加一项cm, 并且赋予新数组对象

    alert(m);// 原数组没有被修改

    alert(n);// 输出新数组对象

splice(): 在数组的任意位置进行添加, 删除或者替换元素, 直接修改数组对象

细节:

splice() 有三个参数或三个以上参数, 前两个是必须的, 后面参数是可选的

进行添加:splice( 起始项,0, 添加项)

进行删除:splice( 起始项, 要删除的项个数)

进行替换:splice( 起始项, 替换个数, 替换项) 这个其实是添加删除的共同结果

代码:

    var m=["am","bm"]

    m.splice(1,0,"fm","sm");// 在第一项后面添加fmsm, 返回am,fm,sm,bm

    alert(m);

    m.splice(2,1);// 删除第二项后面一项( 即第三项sm, 返回am,fm,bm)

    alert(m);

    m.splice(2,1,"mm");// 替换第二项后面一项( 即第三项, 返回am,fm,mm)

    alert(m);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值