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 相关文章推荐
js实现的网页颜色代码表全集
Jul 17 Javascript
JavaScript入门教程(5) js Screen屏幕对象
Jan 31 Javascript
Js基础学习资料
Nov 23 Javascript
JavaScript中使用typeof运算符需要注意的几个坑
Nov 08 Javascript
javascript异步编程代码书写规范Promise学习笔记
Feb 11 Javascript
jquery实现的蓝色二级导航条效果代码
Aug 24 Javascript
分享一道关于闭包、bind和this的面试题
Feb 20 Javascript
微信小程序实现打开内置地图功能【附源码下载】
Dec 07 Javascript
bootstrap 弹出框modal添加垂直方向滚轴效果
Jul 09 Javascript
分享5个顶级的JavaScript Ajax组件库
Sep 16 Javascript
如何提升vue.js中大型数据的性能
Jun 21 Javascript
浅谈TypeScript的类型保护机制
Feb 23 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
PHP 面向对象 final类与final方法
2010/05/05 PHP
使用php shell命令合并图片的代码
2011/06/23 PHP
thinkphp验证码显示不出来的解决方法
2014/03/29 PHP
利用php做服务器和web前端的界面进行交互
2016/10/31 PHP
php利用云片网实现短信验证码功能的示例代码
2017/11/18 PHP
PHP封装请求类实例分析【基于Yii框架】
2019/10/17 PHP
JavaScript判断两种格式的输入日期的正确性的代码
2007/03/25 Javascript
Jquery之美中不足小结
2011/02/16 Javascript
在浏览器窗口上添加遮罩层的方法
2012/11/12 Javascript
JQuery each()函数如何优化循环DOM结构的性能
2012/12/10 Javascript
javascript利用控件对windows的操作实现原理与应用
2012/12/23 Javascript
jquery内置验证(validate)使用方法示例(表单验证)
2013/12/04 Javascript
JS获得选取checkbox整行数据的方法
2015/01/28 Javascript
深入理解JavaScript系列(25):设计模式之单例模式详解
2015/03/03 Javascript
解决jQuery上传插件Uploadify出现Http Error 302错误的方法
2015/12/18 Javascript
详解nodejs中exports和module.exports的区别
2017/02/17 NodeJs
基于Vue.js实现tab滑块效果
2017/07/23 Javascript
vue-cli开发时,关于ajax跨域的解决方法(推荐)
2018/02/03 Javascript
深入理解Vue父子组件生命周期执行顺序及钩子函数
2018/08/12 Javascript
详解vue高级特性
2020/06/09 Javascript
[06:36]吞吞映像top1
2014/06/20 DOTA
[08:47]2018国际邀请赛 OG战队举杯时刻
2018/08/29 DOTA
在Python中实现shuffle给列表洗牌
2018/11/08 Python
解决pandas展示数据输出时列名不能对齐的问题
2019/11/18 Python
jupyter notebook中新建cell的方法与快捷键操作
2020/04/22 Python
Python如何向SQLServer存储二进制图片
2020/06/08 Python
python相对企业语言优势在哪
2020/06/12 Python
pytorch 限制GPU使用效率详解(计算效率)
2020/06/27 Python
Pandas的Apply函数具体使用
2020/07/21 Python
Swisse官方海外旗舰店:澳大利亚销量领先,自然健康品牌
2017/12/15 全球购物
学生会个人自荐书范文
2014/02/12 职场文书
校庆活动方案
2014/03/31 职场文书
公司总经理岗位职责范本
2014/08/15 职场文书
护士工作心得体会
2016/01/25 职场文书
敬业奉献模范事迹材料(2016精选版)
2016/02/26 职场文书
Python实现的扫码工具居然这么好用!
2021/06/07 Python