JavaScript中的Array 对象(数组对象)


Posted in Javascript onJune 02, 2016

 1、创建Array对象方法:

--->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中的Array 对象(数组对象)的相关知识,希望对大家有所帮助!

Javascript 相关文章推荐
判断页面是关闭还是刷新的js代码
Jan 28 Javascript
JS比较2个日期间隔的示例代码
Apr 15 Javascript
对JavaScript中this指针的新理解分享
Jan 31 Javascript
jQuery找出网页上最高元素的方法
Mar 20 Javascript
js实现仿Windows风格选项卡和按钮效果实例
May 13 Javascript
总结Node.js中的一些错误类型
Aug 15 Javascript
javascript判断firebug是否开启的方法
Nov 23 Javascript
vue axios请求超时的正确处理方法
Apr 02 Javascript
微信小程序使用form表单获取输入框数据的实例代码
May 17 Javascript
PHP实现基于Redis的MessageQueue队列封装操作示例
Feb 02 Javascript
JavaScript对象访问器Getter及Setter原理解析
Dec 08 Javascript
微信小程序向Java后台传输参数的方法实现
Dec 10 Javascript
jQuery简单验证上传文件大小及类型的方法
Jun 02 #Javascript
JS脚本实现动态给标签控件添加事件的方法
Jun 02 #Javascript
JavaScript来实现打开链接页面的简单实例
Jun 02 #Javascript
JavaScript实现打开链接页面的方式汇总
Jun 02 #Javascript
JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)
Jun 02 #Javascript
jquery.validate使用详解
Jun 02 #Javascript
jQuery ajax应用总结
Jun 02 #Javascript
You might like
虫族 ZERG 概述
2020/03/14 星际争霸
ubuntu12.04使用c编写php扩展模块教程分享
2013/12/25 PHP
thinkPHP5.0框架安装教程
2017/03/25 PHP
Yii框架实现图片上传的方法详解
2017/05/20 PHP
thinkPHP框架中layer.js的封装与使用方法示例
2019/01/18 PHP
Yii2.0框架模型多表关联查询示例
2019/07/18 PHP
jQuery TextBox自动完成条
2009/07/22 Javascript
javascript设计模式 封装和信息隐藏(上)
2012/07/24 Javascript
解析Javascript中中括号“[]”的多义性
2013/12/03 Javascript
jquery实现倒计时代码分享
2014/06/13 Javascript
jQuery .tmpl() 用法示例介绍
2014/08/21 Javascript
javascript和jquery实现设置和移除文本框默认值效果代码
2015/01/13 Javascript
详解JavaScript中void语句的使用
2015/06/04 Javascript
javascript实现网页端解压并查看zip文件
2015/12/15 Javascript
详解node中创建服务进程
2017/05/09 Javascript
原生js轮播特效
2017/05/18 Javascript
vue 文件目录结构详解
2017/11/24 Javascript
5分钟快速掌握JS中var、let和const的异同
2018/09/19 Javascript
jQuery实现的点击图片居中放大缩小功能示例
2019/01/16 jQuery
在node中使用jwt签发与验证token的方法
2019/04/03 Javascript
解决LayUI数据表格复选框不居中显示的问题
2019/09/25 Javascript
ES6 Generator基本使用方法示例
2020/06/06 Javascript
JavaScript中CreateTextFile函数
2020/08/30 Javascript
Python中利用原始套接字进行网络编程的示例
2015/05/04 Python
Django中URLconf和include()的协同工作方法
2015/07/20 Python
python 高效去重复 支持GB级别大文件的示例代码
2018/11/08 Python
如何基于Python按行合并两个txt
2020/11/03 Python
HTML5标签嵌套规则详解【必看】
2016/04/26 HTML / CSS
Html5应用程序缓存(Cache manifest)
2018/06/04 HTML / CSS
Java面试题及答案
2012/09/08 面试题
联强国际笔试题面试题
2013/07/10 面试题
后勤人员自我评价怎么写
2013/09/19 职场文书
《威尼斯的小艇》教学反思
2014/02/17 职场文书
物理课外活动总结
2014/08/27 职场文书
明星邀请函
2015/02/02 职场文书
合同补充协议书
2016/03/24 职场文书