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 相关文章推荐
jQuery 性能优化指南(3)
May 21 Javascript
Javascript面向对象编程(三) 非构造函数的继承
Aug 28 Javascript
js简单实现根据身份证号码识别性别年龄生日
Nov 29 Javascript
jQuery filter函数使用方法
May 19 Javascript
javascript的document.referrer浏览器支持、失效情况总结
Jul 18 Javascript
理解JS绑定事件
Jan 19 Javascript
Angularjs 制作购物车功能实例代码
Sep 14 Javascript
AngularJS 与Bootstrap实现表格分页实例代码
Oct 14 Javascript
vuejs实现递归树型菜单组件
Jan 13 Javascript
利用Vue-draggable组件实现Vue项目中表格内容的拖拽排序
Jun 07 Javascript
原生javascript的ajax请求及后台PHP响应操作示例
Feb 24 Javascript
基于vue3.0.1beta搭建仿京东的电商H5项目
May 06 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 动画的方法
2007/03/06 PHP
PHP 数据库树的遍历方法
2009/02/06 PHP
一个php导出oracle库的php代码
2009/04/20 PHP
浅析linux下apache服务器的配置和管理
2013/08/10 PHP
php多维数组去掉重复值示例分享
2014/03/02 PHP
PHP判断一个gif图片是否为动态图片的方法
2014/11/19 PHP
PHP中上传多个文件的表单设计例子
2014/11/19 PHP
PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法
2016/01/07 PHP
PHP进程通信基础之信号量与共享内存通信
2017/02/19 PHP
PHP生成随机字符串实例代码(字母+数字)
2019/09/11 PHP
JavaScript 动态添加表格行 使用模板、标记
2009/10/24 Javascript
javascript cookie操作类的实现代码小结附使用方法
2010/06/02 Javascript
jQuery getJSON 处理json数据的代码
2010/07/26 Javascript
javascript之bind使用介绍
2011/10/09 Javascript
JS获取页面窗口大小的代码解读
2011/12/01 Javascript
解析img图片没找到onerror事件 Stack overflow at line: 0
2013/12/23 Javascript
js数值计算时使用parseInt进行数据类型转换(jquery)
2014/10/07 Javascript
解决bootstrap中modal遇到Esc键无法关闭页面
2015/03/09 Javascript
bootstrap输入框组代码分享
2016/06/07 Javascript
全面了解js中的script标签
2016/07/04 Javascript
nodejs中向HTTP响应传送进程的输出
2017/03/19 NodeJs
HTML5+jQuery实现搜索智能匹配功能
2017/03/24 jQuery
jQuery封装placeholder效果实现方法,让低版本浏览器支持该效果
2017/07/08 jQuery
响应式框架Bootstrap栅格系统的实例
2017/12/19 Javascript
Javascript的console['']常用输入方法汇总
2018/04/26 Javascript
Angularjs实现页面模板清除的方法
2018/07/20 Javascript
Python环境变量设置方法
2016/08/28 Python
python 实现在txt指定行追加文本的方法
2018/04/29 Python
python修改文件内容的3种方法详解
2019/11/15 Python
html5实现图片转圈的动画效果——让页面动起来
2017/10/16 HTML / CSS
台湾屈臣氏网路商店:Watsons台湾
2020/12/29 全球购物
yy生日主持词
2014/03/20 职场文书
市委常委班子党的群众路线教育实践活动整改措施
2014/10/02 职场文书
小学生勤俭节约倡议书
2015/04/29 职场文书
超市员工管理制度
2015/08/06 职场文书
Python基础之函数嵌套知识总结
2021/05/23 Python