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启动应用程序的一个简单例子
May 11 Javascript
js 操作select与option(示例讲解)
Dec 20 Javascript
jquery插件corner实现圆角边框的方法
Mar 09 Javascript
JavaScript中利用各种循环进行遍历的方式总结
Nov 10 Javascript
以JavaScript来实现WordPress中的二级导航菜单的方法
Dec 14 Javascript
Javascript 链式作用域详细介绍
Feb 23 Javascript
Angular2 自定义validators的实现方法
Jul 05 Javascript
Vue-router 切换组件页面时进入进出动画方法
Sep 01 Javascript
每个 JavaScript 工程师都应懂的33个概念
Oct 22 Javascript
javascript验证form表单数据的案例详解
Mar 25 Javascript
Bootstarp在pycharm中的安装及简单的使用方法
Apr 19 Javascript
Vue项目使用localStorage+Vuex保存用户登录信息
May 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
php中文字符截取防乱码
2008/03/28 PHP
PHP下使用CURL方式POST数据至API接口的代码
2013/02/14 PHP
ThinkPHP3.1查询语言详解
2014/06/19 PHP
PHP常用的小程序代码段
2015/11/14 PHP
Js的MessageBox
2006/12/03 Javascript
jQuery 对象中的类数组操作
2009/04/27 Javascript
javascript+mapbar实现地图定位
2010/04/09 Javascript
juqery 学习之三 选择器 简单 内容
2010/11/25 Javascript
Jquery实现自定义tooltip示例代码
2014/02/12 Javascript
jQuery不使用插件及swf实现无刷新文件上传
2014/12/08 Javascript
jQuery实现购物车表单自动结算效果实例
2015/08/10 Javascript
学习JavaScript设计模式(单例模式)
2015/11/26 Javascript
javascript cookie的简单应用
2016/02/24 Javascript
使用jQuery.form.js/springmvc框架实现文件上传功能
2016/05/12 Javascript
Jquery EasyUI $.Parser
2017/06/02 jQuery
微信小程序实现获取用户信息并存入数据库操作示例
2019/05/07 Javascript
jQuery实现动态生成年月日级联下拉列表示例
2019/05/11 jQuery
微信小程序 wx.getUserInfo引导用户授权问题实例分析
2020/03/09 Javascript
原生js实现瀑布流效果
2020/03/09 Javascript
浅谈vue在html中出现{{}}的原因及解决方式
2020/11/16 Javascript
Python中的hypot()方法使用简介
2015/05/18 Python
Python中set与frozenset方法和区别详解
2016/05/23 Python
selenium+python 去除启动的黑色cmd窗口方法
2018/05/22 Python
WIn10+Anaconda环境下安装PyTorch(避坑指南)
2019/01/30 Python
通过PHP与Python代码对比的语法差异详解
2019/07/10 Python
python的移位操作实现详解
2019/08/21 Python
matplotlib 生成的图像中无法显示中文字符的解决方法
2020/06/10 Python
Homestay中文官网:全球寄宿家庭
2018/10/18 全球购物
编写strcpy函数
2014/06/24 面试题
专科毕业生求职简历的自我评价
2013/10/12 职场文书
药学专业大专生的自我评价
2013/12/12 职场文书
创新型城市实施方案
2014/03/06 职场文书
十佳护士先进事迹
2014/05/08 职场文书
会员卡清退活动总结
2014/08/27 职场文书
读《庄子》有感:美而不自知
2019/11/06 职场文书
原生JS封装vue Tab切换效果
2021/04/28 Vue.js