javascript Array对象基础知识小结


Posted in Javascript onNovember 16, 2010

对于Array对象我的总结思想是:5法,3招,12式

1.声明5法:只针对一维数组,当然还有二维三维,这里就不做解释了

var a = new Array(); 
var a = new Array; 
var a = new Array(10);//创建Array对象,并指定数组中项的个数 
var a = new Array("red","blue","green"); 
var a = ["red"," blue"," green"];

2.属性3招:constructor,length,prototype
constructor表示创建对象的函数。 constructor 属性是所有具有 prototype 的对象的成员。它们包括除 Global 和 Math 对象以外的所有 JScript 固有对象。constructor 属性保存了对构造特定对象实例的函数的引用。例如:
x = new String("Hi"); 
if (x.constructor == String) 
// 进行处理(条件为真)。 
或 
function MyFunc { 
// 函数体。 
} 
y = new MyFunc; 
if (y.constructor == MyFunc) 
// 进行处理(条件为真)。

Length表示数组的长度,有多少项。这个就不写示例了。
prototype返回对象类型原型的引用。用 prototype 属性提供对象的类的一组基本功能。对象的新实例“继承”赋予该对象原型的操作。
例如,要为 Array 对象添加返回数组中最大元素值的方法。要完成这一点,声明该函数,将它加入 Array.prototype, 并使用它。
function array_max( ){ 
var i, max = this[0]; 
for (i = 1; i < this.length; i++) 
{ 
if(max < this[i]) 
max = this[i]; 
} 
return max; 
} 
Array.prototype.max = array_max; 
var x = new Array(1, 2, 3, 4, 5, 6); 
var y = x.max( );

该代码执行后,y 保存数组 x 中的最大值,或说 6。
3.方法12式:concat 方法 | join 方法 | pop 方法 | push 方法 | reverse 方法 | shift 方法| unshift 方法| slice 方法| splice 方法| sort 方法| toString 方法| valueOf 方法
//1.concat():返回一个新数组,这个新数组是由两个或更多数组组合而成的。 
var a1 = [1,2,3,4]; 
var a2 = a1.concat("5",'6'); 
alert(a2); //结果:1,2,3,4,5,6 
//2.join():返回字符串值,其中包含了连接到一起的数组的所有元素,元素由指定的分隔符分隔开来。 
var a1 = [1,2,3,4]; 
var a2 = a1.join(); 
var a3 = a1.join(","); 
var a4 = a1.join("|"); 
alert(a2); //结果:1,2,3,4 
alert(a3); //结果:1,2,3,4 
alert(a4); //结果:1|2|3|4 
//3.pop():移除数组中的最后一个元素并返回该元素。如果该数组为空,那么将返回 undefined。 
var a1 = [1,2,3,4]; 
var item = a1.pop(); 
alert(item); //结果:4 
alert(a1);//结果:1,2,3 
//4.push():将新元素添加(追加)到一个数组中,并返回数组的新长度值。push 方法将以新元素出现的顺序添加这些元素。如果参数之一为数组,那么该数组将作为单个元素添加到数组中。如果要合并两个或多个数组中的元素,请使用 concat 方法。 
var a1 = [1,2,3,4]; 
a1.push(5); 
a1.push("6"); 
alert(a1);//结果:1,2,3,4,5,6 
//5.reverse():返回一个元素顺序被反转的 Array 对象。 
var a1 = [1,2,3,4]; 
a1.reverse(); 
alert(a1);//结果:4,3,2,1 
//6.shift():移除数组中的第一个元素并返回该元素。 
var a1 = [1,2,3,4]; 
a1.shift(); 
alert(a1);//结果:2,3,4 
//7.unshift():将指定的元素插入数组开始位置并返回该数组。 
var a1 = [1,2,3,4]; 
a1.unshift(5); 
alert(a1);//结果:5,1,2,3,4 
//8.slice():返回一个数组的一段。a1.slice(start, [end]),slice 方法一直复制到 end 所指定的元素,但是不包括该元素。如果 start 为负,将它作为 length + start处理,此处 length 为数组的长度。如果 end 为负,就将它作为 length + end 处理,此处 length 为数组的长度。如果省略 end ,那么 slice 方法将一直复制到 arrayObj 的结尾。如果 end 出现在 start 之前,不复制任何元素到新数组中。 
var a1 = [1,2,3,4]; 
var a2 = a1.slice(-1); 
var a3 = a1.slice(0,-1); 
var a4 = a1.slice(1); 
alert(a2);//结果:4 
alert(a3);//结果:1,2,3 
alert(a4);//结果:2,3,4 
//9.splice():从一个数组中移除一个或多个元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素。 
//arrayObj.splice(start, deleteCount, [item1[, item2[, . . . [,itemN]]]]) 
var a1 = [1,2,3,4]; 
var a2 = a1.splice(1,0); 
var a3 = a1.splice(1,1); 
var a4 = a1.splice(1,1,"5"); 
alert(a2);//结果: 
alert(a3);//结果:2 
alert(a1);//结果:1,5,4 
//10.sort():返回一个元素已经进行了排序的 Array 对象。 
var a1 = [2,3,1,4,"b","a"]; 
var a2 = a1.sort(); 
alert(a2);//结果:1,2,3,4,a,b 
//11.toString():返回对象的字符串表示。 
var a1 = [1,2,3,4,"b","a"]; 
var a2 = a1.toString(); 
alert(a2);//结果:1,2,3,4,b,a 
//12.valueOf():返回指定对象的原始值。 
var a1 = [1,2,3,4,"b","a"]; 
var a2 = a1.valueOf(); 
alert(a2);//结果:1,2,3,4,b,a

indexOf扩展:
if (!Array.prototype.indexOf) Array.prototype.indexOf = function(item, i) { 
i || (i = 0); 
var length = this.length; 
if (i < 0) i = length + i; 
for (; i < length; i++) 
if (this[i] === item) return i; 
return -1; 
}; 
function testIndexOf() 
{ 
var a =[1,2,3,4]; 
alert(a.indexOf(3)); 
} 
<input type="button" value="测试获取数组下标" onclick="testIndexOf()" />
Javascript 相关文章推荐
javascript网页关闭时提醒效果脚本
Oct 22 Javascript
JavaScript自定义方法实现trim()、Ltrim()、Rtrim()的功能
Nov 03 Javascript
AngularJS进行性能调优的7个建议
Dec 28 Javascript
Jquery EasyUI实现treegrid上显示checkbox并取选定值的方法
Apr 29 Javascript
JavaScript希尔排序、快速排序、归并排序算法
May 08 Javascript
jQuery EasyUI封装简化操作
Sep 18 Javascript
聊一聊JS中的prototype
Sep 29 Javascript
浅析location.href跨窗口调用函数
Nov 22 Javascript
vue内置指令详解
Apr 03 Javascript
浅析Vue 防抖与节流的使用
Nov 14 Javascript
Vue组件模板及组件互相引用代码实例
Mar 11 Javascript
微信小程序单选框自定义赋值
May 26 Javascript
纯js实现背景图片切换效果代码
Nov 14 #Javascript
基于jquery的自定义鼠标提示效果 jquery.toolTip
Nov 14 #Javascript
cnblogs中在闪存中屏蔽某人的实现代码
Nov 14 #Javascript
基于MooTools的很有创意的滚动条时钟动画
Nov 14 #Javascript
javascript 学习笔记(onchange等)
Nov 14 #Javascript
javascript取消文本选定的实现代码
Nov 14 #Javascript
IE6下通过a标签点击切换图片的问题
Nov 14 #Javascript
You might like
杏林同学录(七)
2006/10/09 PHP
PHP中如何调用webservice的实例参考
2013/04/25 PHP
如何设置mysql允许外网访问
2013/06/04 PHP
PHP 清空varnish 缓存的详解(包括指定站点下的)
2013/06/20 PHP
PHP间隔一段时间执行代码的方法
2014/12/02 PHP
深入理解PHP+Mysql分布式事务与解决方案
2020/12/03 PHP
dojo 之基础篇(二)之从服务器读取数据
2007/03/24 Javascript
基于JQuery.timer插件实现一个计时器
2010/04/25 Javascript
自制轻量级仿jQuery.boxy对话框插件代码
2010/10/26 Javascript
JQuery的自定义事件代码,触发,绑定简单实例
2013/08/01 Javascript
解析JavaScript中点号“.”的多义性
2013/12/02 Javascript
jquery用data方法获取某个元素上的事件
2014/06/23 Javascript
jquery获取select选中值的方法分析
2015/12/22 Javascript
nodejs Assert中equal(),strictEqual(),deepEqual(),strictDeepEqual()比较
2017/09/18 NodeJs
[01:55]2014DOTA2国际邀请赛 BBC正赛第一天总结
2014/07/10 DOTA
web.py中调用文件夹内模板的方法
2014/08/26 Python
Python中super()函数简介及用法分享
2016/07/11 Python
Python基于高斯消元法计算线性方程组示例
2018/01/17 Python
Python 利用内置set函数对字符串和列表进行去重的方法
2018/06/29 Python
关于python多重赋值的小问题
2019/04/17 Python
parser.add_argument中的action使用
2020/04/20 Python
美国领先的家庭智能音响系统品牌:Sonos
2018/07/20 全球购物
大学生预备党员自我评价分享
2013/11/16 职场文书
社会保险接收函
2014/01/12 职场文书
幼儿园开学家长寄语
2014/01/19 职场文书
银行见习期自我鉴定
2014/01/29 职场文书
2014道德模范事迹材料
2014/02/16 职场文书
项目采购员岗位职责
2014/04/15 职场文书
高三上学期学习自我评价
2014/04/23 职场文书
推荐信格式范文
2014/05/09 职场文书
测控技术自荐信
2014/06/05 职场文书
党员批评与自我批评发言材料
2014/10/14 职场文书
2014年个人业务工作总结
2014/11/17 职场文书
2014年统战工作总结
2014/12/09 职场文书
2019年冬至:天冷暖人心的问候祝福语大全
2019/12/20 职场文书
教你怎么用python selenium实现自动化测试
2021/05/27 Python