博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js数组操作总结
阅读量:6323 次
发布时间:2019-06-22

本文共 3279 字,大约阅读时间需要 10 分钟。

1.定义

有三种方式

(1)  var myCars=new Array();

  myCars[0]="Saab";

  myCars[1]="Volvo";

  myCars[2]="BMW";

(2)  var myCars=new Array(3);

  myCars[0]="Saab";

  myCars[1]="Volvo";

  myCars[2]="BMW";

(3) var myCars=new Array("Saab","Volvo","BMW");

(虽然第二种方法指定了数组长度,实际上所有情况下数组都是变长的,也就是说即使指定了长度为3,仍可以将元素存储在规定长度以外)

2.查找

(1) document.write(myCars[0]); //指定数组名以及索引

(2) arrayObject.slice(start,end);  //从已有数组中返回选定的元素,返回一个新数组(可以使用负值从数组的尾部选取元素;如果end未被指定,会选取从start到数组结尾的所有元素)

3.修改已有数组中的值

myCars[0]="Opel"; //指定下标添加一个新值

4.合并

arr1.concat(arr2);  //concat() 连接两个或多个数组,并返回值

5.转成字符串

(1) arrayObject.join(separator);  //把数组的所有元素放入一个字符串,元素通过指定的分隔符进行分隔。

eg:arr.join(".");

输出结果:Saab.Volvo.BMW

(2) arrayObject.toString();  //数组转为字符串,元素之间用逗号分隔,并返回结果

(3) arrayObject.toLocaleString();   //把数组元素转换为本地字符串,然后使用地区特定的分隔符连接起来,形成一个字符串

(4) arrayObject.valueOf(); //返回数组对象的原始值,该原始值由Array对象派生的所有对象继承。该方法通常由JavaScript在后台自动调用,并不显式地出现在代码中。

(5) object.toSource();  //返回对象的源代码,该原始值由Array对象派生的所有对象继承。该方法通常由JavaScript在后台自动调用,并不显式地出现在代码中。(只有Gecko核心浏览器比如Firefox支持该方法,IE、Safari、Chrome、Opera等浏览器均不支持该方法)

6.排序

(1) arrayObject.sort(sortby);  //sortby为可选,规定排序顺序,必须是函数(在原数组上进行排序,不生成副本)

1>文字排序

输出结果:

George,John,Thomas,James,Adrew,Martin

Adrew,George,James,John,Martin,Thomas

2>数字排序

输出结果:

10,5,40,25,1000,1

1,5,10,25,40,1000

(2) arrayObject.reverse();  //颠倒数组中元素的顺序(不会创建新数组)

7.添加

(1) arrayObject.push(newelement1,newelement2,....,newelementX);   //将指定的一个或多个元素添加到数组结尾,并返回数组新长度(它直接修改arrayObject,而不是创建一个新的数组)

(2) arrayObject.unshift(newelement1,newelement2,....,newelementX); //向数组的开头添加一个或多个元素,并返回新的长度(unshift()不创建新的数组,直接修改原有的数组,该方法无法在IE中正确地工作!

(3) arrayObject.splice(index,howmany,item1,....,itemX);   //删除从index处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素,返回含有被删除元素的数组(该方法会该改变原始数组;howmany如果设置为0,就不会删除项目)

8.删除

(1) arrayObject.pop();   //删除并返回最后一个元素,数组长度减1.如果数组已经为空,则pop()不改变数组,并返回undefined值。

(2) arrayObject.shift();   //删除并返回数组的第一个元素,如果数组是空,shift()不进行任何操作,返回undefined值。(该方法不创建新数组)

(3) arrayObject.splice(deletePos,deleteCount);    //从指定位置开始删除指定元素,并返回所有删除的元素

9.判断数组中是否包含某一项

eg: var arr=[1,2,3];

  arr.indexOf(1);   //存在,返回0

  arr.indexOf(5);   //不存在,返回-1

10.删除数组中指定值的元素

/* 方法:Array.remove(dx)   * 功能:删除数组元素.   * 参数:dx删除元素的下标.   * 返回:在原数组上修改数组   *///经常用的是通过遍历,重构数组.Array.prototype.remove=function(dx){    if(isNaN(dx)||dx>this.length){return false;}    for(var i=0,n=0;i

11.length属性

与其他大多数语言不同,Javascript数组的length属性是可变的。当length属性设置的比原来更大时,整个数组的状态事实上不会发生改变,仅仅是length属性变大;当length属性设置的比原来小时,原先数组中索引大于或等于length的元素的值全部丢失。

<script type="text/javascript">

var arr = new Array(3)

arr[0] = "John"
arr[1] = "Andy"
arr[2] = "Wendy"

document.write("Original length: " + arr.length)

document.write("<br />")

arr.length=5

document.write("New length: " + arr.length)
document.write("<br />")
arr[15]="Jooanna.Yan"
document.write("last length: " + arr.length)
</script>

输出结果:

Original length: 3New length: 5
last length: 16

12.prototype属性

object.prototype.name=value

使你有能力向对象添加属性和方法

对于数组对象的应用,举例:给数组对象添加返回数组中最大元素值的方法。

13.constructor属性

object.constructor

返回创建对象的函数。

示例1:

输出结果:

This is an Array

示例2:

输出结果:

function employee(name, jobtitle, born){this.name = name; this.jobtitle = job; this.born = born;}

示例3:

constructor属性保存了对构造特定对象实例的韩式的引用

eg:   x=new String("Hi");

   if(x.constructor==String)   //进行处理(条件为真)

function MyFunc{

  //函数体

}y=new MyFunc;

if(y.constructor==MyFunc)   //进行处理(条件为真)

 

转载地址:http://txlaa.baihongyu.com/

你可能感兴趣的文章
[转]如何处理海量数据
查看>>
少一点抱怨
查看>>
TabActivity
查看>>
ecshop 修改商品分类里的略缩图大小和展示商品的个数
查看>>
windows下获取文件夹下所有文件名,并保存到文件中
查看>>
网桥配置
查看>>
spring中事件机制
查看>>
我收藏的技术知识图(每张都是大图)
查看>>
ZOJ 3204 Connect them (最小生成树,输出字典序最小的解)
查看>>
食物链(待解决)
查看>>
【linux】——硬链接和符号链接
查看>>
Ajax的XMLHttpRequest对象
查看>>
通用数据存储格式: Hadoop SequenceFile、HFile
查看>>
几种常见的内嵌数据
查看>>
C++ 流
查看>>
Visual C++ 2008入门经典 第十一章调试技术
查看>>
手把手玩转win8开发系列课程(4)
查看>>
Asp.net MVC 3 开发简单的企业系统开篇--数据库
查看>>
【QT学习】如何分析一个QT类
查看>>
包含别人的dll,然后我们用类库再次封装成dll的时候的注意事项;源文件与模块生成时的文件不同;创建调试信息文件 ··PDB时发生意外的错误,进程无法访问文件,因为另一个程序正在使用此文件...
查看>>