数组的有关属性和方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组的有关属性和方法相关的知识,希望对你有一定的参考价值。
- 数组的创建
- 通过构造函数
-
- var arr = new Array();
- 如果预先知道要保存的项目的数组的数量,也可以给构造函数传递该数量。并且该数量会自动变成length属性的值。
-
- var colors = new Array(20);
- 也可以向Array构造函数传递数组中的应该包含的项
-
- var colors = new Array(1, 2,3,4)
- 在使用Array构造函数时也可以省略new操作符
- 创建数组的第二种方式是使用数组字面量表示法
-
- var color = 【‘red’,‘blue’,‘green’】;
- var names = 【】;
- 获取数组的里面的值,可以通过索引来获取 array【index】;
- 数组的长度length,很有特点他不是自读的。因此,通过设置这个属性,可以从数组的末尾移除项或向数组中添加新项。也即是说如果向数组中动态的添加或移除时,数组的length也会跟着改变。
- 检测数组
- 确定某个对象是不是数组 instanceof if (obj instanceof Array) {}
- Array.isArray () 这个方法目的是最终确定某个值到底是不是数组,而不管它是那个在哪个全局执行环境中创建的。 if (Array.isArray (obj) ) {}
- 转换方法
- 所有对象都具有 toLocaleString() ,toString()和 valueOf()方法。
- toString(),调用数组的toString()方法会返回数组中每个值的字符串形式拼接而成的一个以逗号分割开的字符串。
- valueOf() ,调用该方法返回的还是数组
- toLocaleString()方法经常也返回与toString()和valueOf()方法相同的值。但也不总是如此。当调用数组的toLocaleString()方法时,它也创建一个数组值的以逗号分割的字符串。而与前俩个方法唯一不同之处在于,这一次为了取得每一项的值,调用的是每一项的toLocaleString()方法。
- join() 可以使用不同的分隔符来构建这个字符串。直接收一个参数,即用作分隔符的字符串,然后返回包含所有数组项的字符串。不传值的话,默认逗号。
- 栈方法
- push()方法可以接受任意数量的参数,把他们逐个添加到数组的末尾,并返回修改后数组的长度。
- pop()方法则从数组末尾移除最后一项。减少数组的length‘值,返回移除的项。
- 队列方法
- shift() 能够移除数组中的第一项并返回该项,同时数组长度减一。
- unshift() 能在数组前端添加任意个项并返回新数组的长度
- 注意:删除时,返回的是删除的哪一项。添加时,返回的是增加后的数组的长度。
- 重排序方法
- reverse() 会反转数组项的顺序。
- sort() 接受一个函数,按一定的额顺序排列。
-
- function compare(value1, value2) {return value2-value1;}
- 操作方法
- concat()
-
- 没有传值时,它只是复制当前数组并返回
- 传递的是一或多个数组,则该方法会将这些数组中的每一项都添加到结果数组当中
- 传递的值不是数组,这些值就会被简单地添加到结果数组的末尾。
- 返回的合并后的数组
- slice(start,end)
-
- 一个参数,返回从该参数指定位置开始到当前数组末尾的所有项。
- 二个参数,该方法返回起始和结束位置之间的项,但不包括结束位置的项。slice()方法不会影响原始数组。
- splice()的主要用途是向数组的中部插入项。
-
- 删除:可以删除任意数量的项,只需指定2个参数。要删除的第一项的位置和要删除的项数。
- 插入:可以向指定位置插入任意数量的项,只需提供三个参数。起始位置,0(要删除的额项数),和要插入的项。如果要插入多项,可以再传入第四,第五。。。。
- 替换:可以向指定位置 插入任意数量的项,且同时删除任意数量的项,只需指定三个参数。起始位置,要删除的项数,和要插入的任意数量的项。插入的项数不必与删除的项数相等。
- 位置方法
-
- indexof()。 接受俩个参数, 开始的位置,要查找到项。(从头开始)
- lastIndexOf()。接受俩个参数。 起始的位置,和要查找的项。(从后)
- 这俩个方法都返回要查找的项在数组中的位置。或者再没找到的情况下返回-1.在比较第一个参数与数组中的每一项时,必须使用全等操作符;也就是说,要求查找的项必须严格相等。
- 迭代方法:5个迭代方法,每个方法接受俩个参数,要在每一项上运行的函数和(可选的)运行该函数的作用域对象----影星this的值。传入这些方法中的函数接收三个参数:数组项的值,该项在数组中的位置和数组对象本身。
- every():对数组中的每一项运行给定的函数,如果该函数的每一项都返回true,则返回true。
- filter():对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组。
- forEach():对数组中的每一项运行给定函数,这个方法没有返回值。
-
- arr.forEach(function (value,index) {})
- 参数是一个回调函数,回调函数有俩个参数:
-
- 第一个参数表示:数组的当前值
- 第二个参数表示:当前的索引号
- 注意;函数里面的this指向window
- map():对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
-
- 不仅能遍历数组而且能返回一个新的数组
- arr.map(function (value,index) {})
- 参数是一个回调函数,回调函数有俩个参数:
-
- 第一个参数表示:数组的当前值
- 第二个参数表示:当前的索引号
- 注意;函数里面的this指向window
- some():对数组中的每一项运行给定函数,如果该函数对数组中的某一项返回true,则返回true。
- 缩小方法:
- reduce()
- reduceRight()
以上是关于数组的有关属性和方法的主要内容,如果未能解决你的问题,请参考以下文章