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操作ajax返回的json的注意问题!
Feb 23 Javascript
picChange 图片切换特效的函数代码
May 06 Javascript
js读写(删除)Cookie实例详解
Apr 17 Javascript
jQuery中fadeIn、fadeOut、fadeTo的使用方法(图片显示与隐藏)
May 08 Javascript
JavaScript代码编写中各种各样的坑和填坑方法
Jun 06 Javascript
node.js 使用ejs模板引擎时后缀换成.html
Apr 22 Javascript
JSON格式的时间/Date(2367828670431)/格式转为正常的年-月-日 格式的代码
Jul 27 Javascript
jQuery弹出层插件popShow(改进版)用法示例
Jan 23 Javascript
ie下js不执行的几种可能
Feb 28 Javascript
js中如何完美的解析数据
Mar 18 Javascript
vue-for循环嵌套操作示例
Jan 28 Javascript
微信小程序轮播图swiper代码详解
Dec 01 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提取视频网站页面中的FLASH地址的代码
2010/04/17 PHP
ie和firefox中img对象区别的困惑
2006/12/27 Javascript
Prototype Hash对象 学习
2009/07/19 Javascript
javascript 用记忆函数快速计算递归函数
2010/03/15 Javascript
利用js实现遮罩以及弹出可移动登录窗口
2013/07/08 Javascript
JS实现点击链接取消跳转效果的方法
2014/01/24 Javascript
JavaScript在浏览器标题栏上显示当前日期和时间的方法
2015/03/19 Javascript
javascript常用方法总结
2015/05/14 Javascript
轻松学习jQuery插件EasyUI EasyUI实现拖放商品放置购物车
2015/11/30 Javascript
vue-axios使用详解
2017/05/10 Javascript
分分钟学会vue中vuex的应用(入门教程)
2017/09/14 Javascript
基于VuePress 轻量级静态网站生成器的实现方法
2018/04/17 Javascript
详解Nuxt.js部署及踩过的坑
2018/08/07 Javascript
JS PHP字符串截取函数实现原理解析
2020/08/29 Javascript
React服务端渲染原理解析与实践
2021/03/04 Javascript
[07:57]DOTA2热力大趴狂欢夜 广州站活动回顾
2013/11/27 DOTA
[45:44]完美世界DOTA2联赛PWL S2 FTD vs PXG 第一场 11.27
2020/12/01 DOTA
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
2017/03/16 Python
详细解读tornado协程(coroutine)原理
2018/01/15 Python
python3.7简单的爬虫实例详解
2019/07/08 Python
Django实现发送邮件功能
2019/07/18 Python
解决Django后台ManyToManyField显示成Object的问题
2019/08/09 Python
python根据时间获取周数代码实例
2019/09/30 Python
Django3.0 异步通信初体验(小结)
2019/12/04 Python
pytorch 批次遍历数据集打印数据的例子
2019/12/30 Python
将python文件打包exe独立运行程序方法详解
2020/02/12 Python
python使用scapy模块实现ping扫描的过程详解
2021/01/21 Python
基于CSS3实现立方体自转效果
2016/03/01 HTML / CSS
Waterford英国官方网站:世界上最受欢迎的优质水晶品牌
2019/08/17 全球购物
《春晓》教学反思
2014/04/20 职场文书
环境卫生整治简报
2015/07/20 职场文书
2015年七夕情人节感言
2015/08/03 职场文书
小学生一年级(书信作文)
2019/08/13 职场文书
golang 定时任务方面time.Sleep和time.Tick的优劣对比分析
2021/05/05 Golang
漫改真人电影「萌系男友是燃燃的橘色」公开先导视觉图
2022/03/21 日漫
国际最新研究在陨石中发现DNA主要成分 或由陨石带来地球
2022/04/29 数码科技