js数组知识的复习总结

首先来说一下数组的创建方法:
1.空数组:var Array = new Array()
2.指定长度数组:var Array = new Array(Size)
3.指定元素数组:var Array = new Array(Element1, Element2,……,ElementN)
4.单维数组:var Array = [Element1, Element2,……,ElementN]
5.二维数组:var Array = [[ElementSequence1],[ ElementSequence 2],……,[ ElementSequenceN]]
6.多维数组与二维数组同理

再来看看数组的基本操作都有哪些:
1.存取数组元素:
(1)单维数组的存取:数组名[下标索引],
(2)二维数组的存取:二维数组[外层数组下标]内层数组下标多维数组与二维数组相仿把把数组一层层剥开来
2.数组有哪些特性:
(1)数组长度是弹性的,可自由伸缩
(2)数组下标是从0开始的
(3)数组下标可以是数值也可以是非数值:数组下标为非数值时会自动转换为字符串并将字符串作为对象属性的名字生成相应的关联数组(eg:Array[a],Array[b]...)
(4)数组元素可添加到对象中
3.如何增加数组元素:通过使用"[]"运算符来指定一个新下标,例如给变量Array添加第五个元素可写成Array[4]
4.如何删除数组元素:delete 数组名[下标]
5.如何遍历数组元素:for(var 数组元素变量 in 数组)

再来看看数组都有哪些属性吧:
1.length属性:返回数组的长度,即数组中元素的个数;因为数组的索引总是从0开始的,所以一个数组的上下限分别是0和length-1;但是从数组的特性第一条可以知道length属性是可变的,因此也可以通过length属性来增加或减少数组的容量。
2.prototype属性:此属性是object共有的,使我们有能力向对象添加属性和方法,例如:object.prototype.name=value
3.constructor 属性是专门为 function 而设计的,它存在于每一个 function 的prototype 属性中;这个 constructor 保存了指向 function 的一个引用
constructor属性是所有具有prototype对象的成员,它包括除Global和Math对象以外的所有js固有对象,constructor属性保存了对构造特定对象实例的函数的引用。

数组的常用操作方法:
1.栈方法:
(1)pop():从数组末尾移除最后一项,减少数组的length值,然后返回移除的项
(2)push():可以接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度
2.队列方法:
(1)shift():移除数组中第一个项并返回改项,同时将数组长度减1
(2)unshift():在数组前端添加任意个项并返回新数组的长度
3.重排序方法
(1)reserve():反转数组元素顺序
(2)sort():默认情况下,sort()方法会按升序从小到大排列数组项,为了实现排序sort()方法会调用每个数组项的toString()转型方法后然后比较得到的字符串以确定如何排序,哪怕数组中的每一项都是数值sort()方法比较的也是字符串;sort()方法可以接收一个比较函数作为参数,以便我们指定哪个值位于哪个值的前面
4.操作方法:
(1)concat():合并两个数组并返回结果,它不会改变当前数组,而是基于当前数组中的所有项创建一个新数组
(2)slice():截取数组中的一段并返回,可以接收一或两个参数即要返回的起始和结束位置,在只有一个参数的情况下,slice()方法返回从该参数指定位置开始到当前数组末尾的所有项,如果有两个参数,该方法返回起始和结束位置之间的项(包含头不包含尾),如果是负数则用数组长度加上该值确定的位置;slice()方法也是基于当前数组中的一项或多个项创建一个新数组而不改变当前数组
(3)splice():主要用途是向数组的中部插入项,但使用这种方法的方式则有如下3种
a)删除:可以删除任意数量的项,需指定2个参数:要删除的第一项的位置和要删除的项数;列如:splice(0,2)会删除数组中的前两项;
b)插入:可以向指定位置插入任意数量的项,需提供3个参数:起始位置,0(要删除的项数)和要插入的项;如何要插入多项可以再传入第四,第五,以至任意多个项;列如:splice(2,0,"red","green")会从当前数组的位置2开始插入字符串"red"和"green";
c)替换:可以向指定位置插入任意数量的项,且同时删除任意数量的项,只需要提供3个参数:起始位置,要删除的项数和要插入的任意数量的项;列如:splice(2,1,"red","green")会删除当前数组位置2的项,然后再从位置2开始插入字符串"red"和"green";splice()方法始终都会返回一个数组,该数组中包含从原始数组中删除的项(如果没有删除任何项,则会返回一个空数组).
5.转换方法:
所有对象都具有toLocaleString(),toString()和valueOf()方法;
(1)toString():返回由数组中每个值的字符串形式拼接而成的一个以逗号分隔的字符串
(2)toLocalString():用法同toString(),但是数组转化为的是本地字符串
(3)valueOf():用法同toString(),但返回的还是数组
(4)join():接收一个参数用作分隔符,数组转化为字符串后以该参数连接
6.检测数组:
(1)instanceof:检测对象是否为数组,用法为:if(value instanceof Array){//对数组执行某些操作}
(2)Array.isArray():此方法作用同instanceof,但只支持ie9+,firefox 4+,safari 5+,opera 10.5+和chrome,用法为:if(Array.isArray(value)){//对数组执行某些操作}
7.位置方法:
两个位置方法:indexOf()和lastIndexOf(),这两个方法都接收两个参数:要查找的项和(可选的)表示查找起点位置的索引;这两个方法都返回查找的项在数组中的位置或者在没找到的情况下返回-1,在比较第一个参数与数组中每一项时会使用全等操作符,也就是说要求查找的项必须严格相等
(1)indexOf:从数组的开头(位置0)开始向后查找
(2)lastIndexOf:从数组的结束位置开始向前查找
8.迭代方法:
(1)every():相当于逻辑与,如果该函数对每一项都返回true则返回true,它不会对空数组进行检测也不会改变原始数组
(2)filter():返回给定条件的数组,返回值为true的所有数组成员
(3)forEach():无返回值
(4)map():返回每次函数调用的结果数组
(5)some():相当于逻辑或,有任意一项返回true则返回true
9.归并方法:
(1)reduce():接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值;语法为:arr.reduce([callback, initialValue]),
callback:执行数组中每个值的函数,包含四个参数:
a)previousValue:上一次调用回调函数返回的值,或者是提供的初始值(initialValue)
b)currentValue:数组中当前被处理的元素
c)currentIndex:当前被处理元素在数组中的索引, 即currentValue的索引.如果有initialValue初始值, 从0开始.如果没有从1开始.
d)array:调用 reduce 的数组
initialValue:可选参数, 作为第一次调用callback的第一个参数, previousValue 等于 initialValue
(2)reduceRight():和reduce()方法本质一样,区别就在于是从后向前开始遍历

时间: 2024-11-08 19:04:25

js数组知识的复习总结的相关文章

js 数组操作代码集锦_基础知识

用 js有很久了,但都没有深究过js的数组形式.偶尔用用也就是简单的string.split(char).这段时间做的一个项目,用到数组的地方很多,自以为js高手的自己居然无从下手,一下狠心,我学!呵呵.学了之后才知道,js数组的功能强大很,远比VB,C#强多了,大家慢慢看吧 1.数组的创建 复制代码 代码如下: var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,

深入理解js数组的sort排序_javascript技巧

废话少说直接上代码: <body> <div> sort()对数组排序,不开辟新的内存,对原有数组元素进行调换 </div> <div id="showBox"> 1.简单数组简单排序 <script type="text/javascript"> var arrSimple=new Array(1,8,7,6); arrSimple.sort(); document.writeln(arrSimple.j

js数组常用操作方法小结(增加,删除,合并,分割等)_javascript技巧

本文实例总结了js数组常用操作方法.分享给大家供大家参考,具体如下: var arr = [1, 2, 3, 4, 5]; //删除并返回数组中第一个元素 var theFirst = arr.shift(); alert(theFirst);//返回1 number alert(arr);//2,3,4,5 object //删除并返回数组中最后一个元素 var theLast = arr.pop(); alert(theLast);//返回5 number alert(arr);//2,3,

js 数组去重的四种实用方法_javascript技巧

面试前端必须准备的一个问题:怎样去掉Javascript的Array的重复项.据我所知,百度.腾讯.盛大等都在面试里出过这个题目.这个问题看起来简单,但是其实暗藏杀机. 考的不仅仅是实现这个功能,更能看出你对计算机程序执行的深入理解. 我总共想出了三种算法来实现这个目的: Array.prototype.unique1 = function() { var n = []; //一个新的临时数组 for(var i = 0; i < this.length; i++) //遍历当前数组 { //如

JSON用法之将PHP数组转JS数组,JS如何接收PHP数组_php实例

首先下载下面这个文件(这是一段是别人写出来专门解析json的代码),然后引入这个文件!     http://pan.baidu.com/s/1dD8qVr7     现在当我们需要用ajax与后台进行交互时,怎样将php的数组传送到js文件并且并js所识别?     先看php文件,当我们获取到$arr这个数组后 foreach ($arr as $value) { $json .= json_encode($value) . ','; } echo '[' . substr($json,0,

JS数组去掉重复数据只保留一条的实现代码_javascript技巧

非常不多说,js数组去掉重复数据的代码如下所示: var arr = [1,2,3,4,5,6,1,6,7,2]; var newArr = []; for(var i =0;i<arr.length-1;i++){ if(newArr.indexOf(arr[i]) == -1){ newArr.push(arr[i]); } } 下面再给大家分享高效率去掉js数组中重复项 Array类型并没有提供去重复的方法,如果要把数组的重复元素干掉,那得自己想办法: function unique(ar

分享JS数组求和与求最大值的方法_javascript技巧

前言 面试遇到一个问题:JS数组求和函数.我第一想到的就是数组循环.然而我觉得面试官问这个问题一定不是想考这个人人皆知的方法.当时机智的我竟然想到了递归函数不断加和数组的项,然而折腾了好久都没调好方法,事实证明这并不是最优解.最后面试官问我有没有见过reduce(),真木有哇.所以回来查资料,Array.reduce()是ES5新增的新属性,相似的还有Array.reduceRight(). 下文来总结一下数组求和的方法. 最粗暴的方法:循环获取 通过for循环一项项地加和.看代码: Array

简单谈谈JS数组中的indexOf方法_javascript技巧

前言 相信说到 indexOf 大家并不陌生,判断字符串是否包涵子字符串时特别常用,正则不熟练同学的利器.这篇文章就最近遇到的一个问题,用实例再说说说indexOf方法.本文是小知识点积累,不作为深入讨论的话题,因此这里没有解释indexOf()的第二个参数,相信大家都知道第二个参数的作用. String 类型的使用 温习一下大家熟知的字符串用法,举个 let str = 'orange'; str.indexOf('o'); //0 str.indexOf('n'); //3 str.inde

js数组的基本操作(很全自己整理的)_javascript技巧

用 js有很久了,但都没有深究过js的数组形式.偶尔用用也就是简单的string.split(char).这段时间做的一个项目,用到数组的地方很多,自以为js高手的自己居然无从下手,一下狠心,我学!呵呵.学了之后才知道,js数组的功能强大很,远比VB,C#强多了,大家慢慢看吧 1.数组的创建 var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度 var arr