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 相关文章推荐
ZeroClipboard插件实现多浏览器复制功能(支持firefox、chrome、ie6)
Aug 30 Javascript
js 获取元素在页面上的偏移量的方法汇总
Apr 13 Javascript
jquery插件pagination实现无刷新ajax分页
Sep 30 Javascript
JS未跨域操作iframe里的DOM
Jun 01 Javascript
Bootstrap进度条与AJAX后端数据传递结合使用实例详解
Apr 23 Javascript
如何选择适合你的JavaScript框架
Nov 20 Javascript
Javasript设计模式之链式调用详解
Apr 26 Javascript
小程序getLocation需要在app.json中声明permission字段
Apr 04 Javascript
小程序实现录音上传功能
Nov 22 Javascript
vue3+typeScript穿梭框的实现示例
Dec 29 Vue.js
在js中修改html body的样式
Nov 11 Javascript
React更新渲染原理深入分析
Dec 24 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
Protoss魔法科技
2020/03/14 星际争霸
thinkphp的c方法使用示例
2014/02/24 PHP
PHP处理Oracle的CLOB实例
2014/11/03 PHP
PHP实现图片的等比缩放和Logo水印功能示例
2017/05/04 PHP
JS跨域总结
2012/08/30 Javascript
jQuery中对未来的元素绑定事件用bind、live or on
2014/04/17 Javascript
jQuery响应enter键的实现思路
2014/04/18 Javascript
jquery实现通用版鼠标经过淡入淡出效果
2014/06/15 Javascript
node.js中的console.dir方法使用说明
2014/12/10 Javascript
JavaScript图片轮播代码分享
2015/07/31 Javascript
jquery实现的用户注册表单提示操作效果代码分享
2015/08/28 Javascript
微信和qq时间格式模板实例详解
2016/10/21 Javascript
关于Jquery中的bind(),on()绑定事件方式总结
2016/10/26 Javascript
Java与JavaScript中判断两字符串是否相等的区别
2017/03/13 Javascript
解决Angular.js中使用Swiper插件不能滑动的问题
2018/02/26 Javascript
妙用缓存调用链实现JS方法的重载
2018/04/30 Javascript
Angular-UI Bootstrap组件实现警报功能
2018/07/16 Javascript
vue制作抓娃娃机的示例代码
2020/04/17 Javascript
vue+iview框架实现左侧动态菜单功能的示例代码
2020/07/23 Javascript
Vue中关闭弹窗组件时销毁并隐藏操作
2020/09/01 Javascript
Vue 401配合Vuex防止多次弹框的案例
2020/11/11 Javascript
[03:04]2018年度DOTA2玩家最喜爱的主播-完美盛典
2018/12/16 DOTA
[01:03]PWL开团时刻DAY6——别打我
2020/11/05 DOTA
python爬取网站数据保存使用的方法
2013/11/20 Python
Python实现Mysql数据库连接池实例详解
2017/04/11 Python
对numpy数据写入文件的方法讲解
2018/07/09 Python
重写django的model下的objects模型管理器方式
2020/05/15 Python
Python matplotlib画图时图例说明(legend)放到图像外侧详解
2020/05/16 Python
Python制作简单的剪刀石头布游戏
2020/12/10 Python
跑步爱好者一站式服务网站:Jack Rabbit
2016/09/01 全球购物
Ooni英国官网:披萨烤箱
2020/05/31 全球购物
求最大连续递增数字串(如"ads3sl456789DF3456ld345AA"中的"456789")
2015/09/11 面试题
操行评语大全
2014/04/30 职场文书
大学三年计划书范文
2014/04/30 职场文书
2014年实习期工作总结
2014/11/27 职场文书
Docker下安装Oracle19c
2022/04/13 Servers