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 类定义的4种方法
Sep 12 Javascript
jQuery dialog 异步调用ashx,webservice数据的代码
Aug 03 Javascript
JavaScript 对象模型 执行模型
Oct 15 Javascript
JS中批量给元素绑定事件过程中的相关问题使用闭包解决
Apr 15 Javascript
js substr支持中文截取函数代码(中文是双字节)
Apr 17 Javascript
Node.js和PHP根据ip获取地理位置的方法
Mar 14 Javascript
Node.js中使用mongoskin操作mongoDB实例
Sep 28 Javascript
JQuery中DOM事件冒泡实例分析
Jun 13 Javascript
慕课网题目之js实现抽奖系统功能
Sep 19 Javascript
jQuery中过滤器的基本用法示例
Oct 11 jQuery
javascript创建元素和删除元素实例小结
Jun 19 Javascript
ElementUI Tree 树形控件的使用并给节点添加图标
Feb 27 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
如何在smarty中增加类似foreach的功能自动加载数据
2013/06/26 PHP
PHP学习笔记(三):数据类型转换与常量介绍
2015/04/17 PHP
php微信开发之关键词回复功能
2018/06/13 PHP
PHP文件操作简单介绍及函数汇总
2020/12/11 PHP
提高 DHTML 页面性能
2006/12/25 Javascript
基于jQuery的弹出消息插件 DivAlert之旅(一)
2010/04/01 Javascript
10款新鲜出炉的 jQuery 插件(Ajax 插件,有幻灯片、图片画廊、菜单等)
2011/06/08 Javascript
计算新浪Weibo消息长度(还可以输入119字)
2013/07/02 Javascript
不使用浏览器运行javascript代码的方法
2013/07/24 Javascript
js实现拖拽效果
2015/02/12 Javascript
分享一个原生的JavaScript拖动方法
2016/09/25 Javascript
Javascript json object 与string 相互转换的简单实现
2016/09/27 Javascript
JS异步文件上传(兼容IE8+)
2017/04/02 Javascript
jQuery实现简单的滑动导航代码(移动端)
2017/05/22 jQuery
JS验证码实现代码
2017/09/14 Javascript
不使用 JS 匿名函数理由
2017/11/17 Javascript
JavaScript实现指定数量的并发限制的示例代码
2020/03/10 Javascript
在Vue中使用Echarts实例图的方法实例
2020/10/10 Javascript
在antd Form表单中select设置初始值操作
2020/11/02 Javascript
Array.filter中如何正确使用Async
2020/11/04 Javascript
python使用urlparse分析网址中域名的方法
2015/04/15 Python
Python模块搜索概念介绍及模块安装方法介绍
2015/06/03 Python
Python手机号码归属地查询代码
2016/05/04 Python
Python实现并行抓取整站40万条房价数据(可更换抓取城市)
2016/12/14 Python
浅谈Tensorflow模型的保存与恢复加载
2018/04/26 Python
python matplotlib如何给图中的点加标签
2019/11/14 Python
在OpenCV里使用Camshift算法的实现
2019/11/22 Python
python实现tail实时查看服务器日志示例
2019/12/24 Python
keras中epoch,batch,loss,val_loss用法说明
2020/07/02 Python
python中翻译功能translate模块实现方法
2020/12/17 Python
关于前端上传文件全面基础扫盲贴(入门)
2019/08/01 HTML / CSS
移动端HTML5 input常见问题(小结)
2020/09/28 HTML / CSS
甜美蛋糕店创业计划书
2014/01/30 职场文书
我的生日感言
2015/08/03 职场文书
JavaScript实现优先级队列
2021/12/06 Javascript
JavaScript实现栈结构详细过程
2021/12/06 Javascript