javascript之Array 数组对象详解


Posted in Javascript onJune 07, 2016

1、创建Array对象方法:

--->var arr = [element0, element1, ..., elementn];//简单的定义方法

var arr = [1,2,3]

此时可以知道
arr[0] == 1;

arr[1] == 2;

arr[2] == 3;

--->new Array();

var arr = new Array();//定义一个没有任何内容的数组对象,然后以下面的方式为其赋值

arr[0] = "arr0";

arr[1] = "arr1";

arr[2] = "arr2";

--->new Array(size);//定义一个大小有限制的数组对象,然后以下面的方式赋值(赋值方式和上面是一样的)

var arr = new Array(3);

arr[0] = "arr0";

arr[1] = "arr1";

arr[2] = "arr2";

--->new Array(element0, element1, ..., elementn);//直接将数组内容定义好

var arr = new Array("arr0","arr1","arr2");

此时可以知道:
arr[0] == "arr0";

arr[1] == "arr1";

arr[2] == "arr2";

2、Array对象属性

Array常见的属性有三个:constructor、length和prototype

--->constructor,顾名思义,就是一个构造器,即这个对象是由什么构成的,再通俗一点就是这个对象的类型,见下面例子

var arr = new Array(3);

if(arr.constructor==Array)

{

   document.write("This is an Array");

}

if (test.constructor==Boolean)

{

   document.write("This is a Boolean");

}

if (test.constructor==Date)

{

   document.write("This is a Date");

}

if (test.constructor==String)

{

   document.write("This is a String");

}

上面的输出结果是:This is an Array

--->length,即Array的长度

var arr = new Array(3);

document.write(arr.length);//输出结果是3

注意,在Javascript中是可以修改Array对象的属性的,

因此:

arr.length=5;

document.write(arr.length);//输出结果是5

--->prototype,使您有能力向对象添加属性和方法。

function myarray(name,age)//定义一个类,此类目前有两个属性

{

   this.name = name;

   this.age = age;

}

var myarr = new myarray("john",25);

myarray.prototype.test = null;//为myarray类添加了一个属性

myarr.test = "test";

alert(myarr.test);//输出test

3、concat()方法--->连接两个或多个数组

它有两种使用方式:

--->连接实际数据
例:

var arr = new Array(1,2,3);

alert(arr.concat(4,5));//输出1,2,3,4,5

--->连接两个或多个数组

var arr1 = new Array(1,2,3);

var arr2 = [4,5];

var arr3 = new Array("jone","john");

alert(arr1.concat(arr2,arr3));//输出1,2,3,4,5,jone,john

4、join()方法--->数组中的元素放入一个字符串

它可以有参数或者无参,参数代表的是对生成的字符串的分割方式

--->无参

var arr = new Array("jone","Grrgy","john");

alert(arr.join());//输出jone,Grrgy,john  字符串中间以,隔开

--->有参

var arr = new Array("jone","Grrgy","john");

alert(arr.join("."));//输出jone.Grrgy.john   字符串中间以参数隔开

5、pop()方法用于删除并返回数组的最后一个元素(删除前)

var arr = new Array("jone","john","grrgy");

document.write(arr.pop());//输出内容:grrgy

document.write(arr.join("-"));//输出:jone-john

6、push()方法用于向数组最后添加一个元素,并返回数组的长度(添加后)

假如push()中参数为空(不填写),则返回数组原长度,不会对数组做任何修改
例:

var arr = ["jone","john","grrgy"];

document.write(arr.push("tom"));//输出:4(长度)

document.write(arr.join());//输出:jone,john,grrgy,tom

7、reverse()颠倒数组中元素的顺序,无参

例:

var arr = ["jone","john","grrgy"];

document.write(arr.reverse());//grrgy,john,jone

8、shift()删除并返回数组的第一个元素(删除前)

var arr = ["jone","john","grrgy"];

document.write(arr.shift());//输出:jone

document.write(arr.join());//输出:jone,john

9、slice()从指定的数组中返回指定的元素,注:它返回的是一个数组

它的参数有两个,start和end,
start为必选,指定的是开始元素的位置
end为可选,指定的结束元素的位置,假如不写,则认为是到数组结尾
例:

var arr = ["jone","john","grrgy","tom","hell"];

var test = arr.slice(1);

if(test.constructor==Array)

{

   document.write("This is an Array<br>");

   document.write(test.join());

}

最后结果输出:

This is an Array
john,grrgy,tom,hell

若将var test = arr.slice(1)改为:
var test = arr.slice(1,2);
结果输出为:
john

10、sort()对数组的元素进行排序,非常重要的一个方法

它可以有参数,参数为一个function(),此function规定了排序的规则,
注,它生出的是原数组的副本,不会生成新的数组,即在原数组的基础上进行修改
假如不添加参数的话,那么会按照Javascript中内置的排序方式进行,字母顺序
例:

var arr = ["jone","john","grrgy","tom","hell"];

document.write(arr.sort());

document.write("<br>");

document.write(arr);

输出结果为:
grrgy,hell,john,jone,tom
grrgy,hell,john,jone,tom

下面是按照数字大小进行排序

function sortNumber(a,b)// 定义排序规则的函数

{

   if(a>b)

   {

      return 1;

   }

   else if(a<b)

   {

      return -1;

   }

   else

   {

      return 0;

   }
}

var arr = new Array(1,2000,3,400);

document.write(arr.sort(sortNumber));//此处只写函数名即可

document.write("<br>");

document.write(arr);

输出:

1,3,400,2000
1,3,400,2000

11、splice()删除元素并向数组中添加元素

splice(index,howmany,element1,element2.....elementx)说明如下:
index为必需项,规定从何处添加/删除元素。该参数是开始插入和(或)删除的数组元素的下标,必须是数字。
howmany为必需。规定应该删除多少元素。必须是数字,但可以是 "0"。如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。
当howmany为0,则表示不删除任何元素,言外之意就是只添加
element1为可选,规定要添加到数组的新元素。从 index 所指的下标处开始插入,可以插入多个
splice()和slice()的区别在于,splice()是对原数组进行的处理,它修改了原数组的值,返回一个数组。
splice()相当于针对数组中某个元素进行替换,或者是插入或者是删除

看下面三个例子:

--->只插入

var arr = new Array(6);

arr[0] = "George";

arr[1] = "John";

arr[2] = "Thomas";

arr[3] = "James";

arr[4] = "Adrew";

arr[5] = "Martin";
document.write(arr + "<br />");

arr.splice(2,0,"William");

document.write(arr + "<br />");

输出结果:
George,John,Thomas,James,Adrew,Martin
George,John,William,Thomas,James,Adrew,Martin
William插入到了2的位置

--->只删除

var arr = new Array(6);

arr[0] = "George";

arr[1] = "John";

arr[2] = "Thomas";

arr[3] = "James";

arr[4] = "Adrew";

arr[5] = "Martin";
document.write(arr + "<br />");

arr.splice(2,1);

document.write(arr + "<br />");

输出结果:
George,John,Thomas,James,Adrew,Martin
George,John,James,Adrew,Martin
删除了原先数组2位置的元素

--->既删除又添加(相当于替换)

var arr = new Array(6);

arr[0] = "George";

arr[1] = "John";

arr[2] = "Thomas";

arr[3] = "James";

arr[4] = "Adrew";

arr[5] = "Martin";
document.write(arr + "<br />");

arr.splice(2,1,"William");

document.write(arr + "<br />");

输出结果:
George,John,Thomas,James,Adrew,Martin
George,John,William,James,Adrew,Martin
将原先的Thomas替换成了William

12、toSource()返回对象的源代码,此方法一般位于Javascript的后台自动调用,很少在前台使用且此方法无法在IE浏览器实现,例:在firefox中

var myarr = new Array('lisi',25);

document.write(myarr.toSource());

输出结果为:
["lisi", 25]

假如重新定义一个类,则可以将属性名显示出来,例:

function myarray(name,age)

{

    this.name = name;

    this.age = age;

}

var myarr = new myarray('lisi',25);

document.write(myarr.toSource());

输出结果为:
({name:"lisi", age:25})
有点类似于Json类型的数据,但其实仅仅是相似而已,它并不是一种Json数据类型格式

13、toString(),数组返回成字符串,它和join()实现的结果一样,但是join()方法可以自定义间隔的符号而toString()则不可以,只能以,隔开,例:

var myarr = new Array('jone','john','Tom');

document.write(myarr.join('.'));

document.write('<br>');

document.write(myarr.join(','));

document.write('<br>');

document.write(myarr.join());

document.write('<br>');

document.write(myarr.toString());

输出结果为:
jone.john.Tom
jone,john,Tom
jone,john,Tom
jone,john,Tom
可以看出后三种方法结果是一样的

14、unshift(),可以向数组的开头添加一个或多个元素并且返回数组的新长度,且原来的数组将会改变

unshift(element1,element2,element3....),最起码有一个元素,例:

var myarr = new Array('jone','john','Tom');

var length = myarr.unshift('zhangsan','lisi');

document.write(myarr);

document.write('<br>');

document.write(length);

输出结果为:
zhangsan,lisi,jone,john,Tom
5

查看更多JavaScript的语法,大家可以关注:《JavaScript 参考教程》、《JavaScript代码风格指南》,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery EasyUI API 中文文档 - NumberBox数字框
Oct 13 Javascript
Ext JS 4实现带week(星期)的日期选择控件(实战二)
Aug 21 Javascript
用js代码改变单选框选中状态的简单实例
Dec 18 Javascript
html5+javascript制作简易画板附图
Apr 25 Javascript
js获取下拉列表的值和元素个数示例
May 07 Javascript
angularJS 中$attrs方法使用指南
Feb 09 Javascript
javascript实现淡蓝色的鼠标拖动选择框实例
May 09 Javascript
Ajax清除浏览器js、css、图片缓存的方法
Aug 06 Javascript
js实现的页面矩阵图形变换特效
Jan 26 Javascript
JavaScript的new date等日期函数在safari中遇到的坑
Oct 24 Javascript
js实现图片轮播效果学习笔记
Jul 26 Javascript
Vue.js标签页组件使用方法详解
Oct 19 Javascript
JavaScript语言精粹经典实例(整理篇)
Jun 07 #Javascript
jQuery+ajax实现滚动到页面底部自动加载图文列表效果(类似图片懒加载)
Jun 07 #Javascript
javascript基础知识
Jun 07 #Javascript
jQuery+Ajax实现限制查询间隔的方法
Jun 07 #Javascript
JavaScript实现九九乘法表的简单实例
Jun 07 #Javascript
javascript如何定义对象数组
Jun 07 #Javascript
jQuery控制div实现随滚动条滚动效果
Jun 07 #Javascript
You might like
文章推荐系统(三)
2006/10/09 PHP
php中将数组存到文件里的实现代码
2012/01/19 PHP
解析argc argv在php中的应用
2013/06/24 PHP
PHP模板引擎Smarty中变量的使用方法示例
2016/04/11 PHP
php 使用expat方式解析xml文件操作示例
2019/11/26 PHP
拖动Html元素集合 Drag and Drop any item
2006/12/22 Javascript
jquery text,radio,checkbox,select操作实现代码
2009/07/09 Javascript
利用Jquery实现可多选的下拉框
2014/02/21 Javascript
使用js实现数据格式化
2014/12/03 Javascript
javascript修改图片src的方法
2015/01/27 Javascript
jquery实现可自动收缩的TAB网页选项卡代码
2015/09/06 Javascript
基于jquery实现智能表单验证操作
2016/05/09 Javascript
js实现文字截断功能
2016/09/14 Javascript
使用bootstrap实现多窗口和拖动效果
2016/09/22 Javascript
详解Javascript中DOM的范围
2017/02/13 Javascript
Ionic3实现图片瀑布流布局
2017/08/09 Javascript
微信小程序数据存储与取值详解
2018/01/30 Javascript
bootstrap 路径导航 分页 进度条的实例代码
2018/08/06 Javascript
微信小程序如何实现五星评价功能
2019/10/15 Javascript
js实现幻灯片轮播图
2020/08/14 Javascript
实现vuex原理的示例
2020/10/21 Javascript
Python时间戳与时间字符串互相转换实例代码
2013/11/28 Python
Python实现类继承实例
2014/07/04 Python
django框架自定义模板标签(template tag)操作示例
2019/06/24 Python
用python实现英文字母和相应序数转换的方法
2019/09/18 Python
pytorch torch.expand和torch.repeat的区别详解
2019/11/05 Python
Python如何输出整数
2020/06/07 Python
HTML5 Blob对象的具体使用
2020/05/22 HTML / CSS
科尔士百货公司官网:Kohl’s
2016/07/11 全球购物
Everything But Water官网:美国泳装品牌
2019/03/17 全球购物
家长对老师的评语
2014/04/18 职场文书
优秀教研组申报材料
2014/12/26 职场文书
给下属加薪申请报告
2015/05/15 职场文书
趣味运动会口号
2015/12/24 职场文书
Python 处理表格进行成绩排序的操作代码
2021/07/26 Python
Win10加载疑难解答时出错发生意外错误的解决方法
2022/07/07 数码科技