数组是编程中常用的数据结构。js中的数组有众多的属性和方法,为各个功能的实现提供了较大的方便。遂总结如下,方便平时查找使用:
Array 对象属性:
属性 | 描述 |
constructor | 返回创建此对象的数组函数的引用 |
length | 设置或者返回数组中元素的数目 |
prototype | 此属性可以向对象添加属性和方法 |
Array对象方法:
方法 | 描述 | 备注 |
push(newelement1,newelement2,……,newelementx) | 向数组的末尾添加一个或更多元素,并返回新的长度 | |
pop() | 删除并且返回数组的最后一个元素 | |
shift() | 删除并且返回数组的第一个元素 | |
unshift(newelement1,newelement2,……,newelementx) | 向数组的开头添加一个或更多元素,并返回新的长度 | |
slice(start,end) | 返回从start到end(不包含)的元素组成的新数组 | |
splice(index,howmany,item1,.....,itemX) | 删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。 如果从 原数组中删除了元素,则返回的是含有被删除的元素的数组。
| 如果第二个参数为0,则只是添加 |
sort(sortby) | 对数组的元素进行排序,参数可选,规定排序顺序,必须是函数。 | 如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。 |
concat(arrayX,arrayX,......,arrayX) | 用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。 | arrayX是必需。该参数可以是具体的值,也可以是数组对象。可以是任意多个。 |
join(separator) | 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。 | 如果省略该参数,则使用逗号作为分隔符。 |
reverse() | 颠倒数组中元素的顺序。 | 该方法会改变原来的数组,而不会创建新的数组。 |
toSource() | 表示对象的源代码。 该原始值由 Array 对象派生的所有对象继承。 | toSource() 方法通常由 JavaScript 在后台自动调用,并不显式地出现在代码中。 |
toString() | 可把数组转换为字符串,并返回结果。 | |
toLocaleString() | 把数组转换为本地字符串。 | |
valueOf() | 法返回 Array 对象的原始值。该原始值由 Array 对象派生的所有对象继承。 | valueOf() 方法通常由 JavaScript 在后台自动调用,并不显式地出现在代码中。 |
forEach() | 数组中的每个元素调用传参提供的函数,无返回值,直接改变原数组 | |
map() | 数组中的每个元素调用传参提供的函数,结果作为新的数组返回,不改变原数组 | |
filter() | 对所有元素进行过滤,将满足条件的元素作为一个新数组返回 | |
every() | 对所有元素进行判断返回一个布尔值,如果所有元素都满足判断条件,则返回true,否则为false | |
some() | 对所有元素进行判断返回一个布尔值,如果存在元素满足判断条件,则返回true,如果都不满足则为false | |
reduce(callback, [initialValue]) | 所有元素调用返回函数,返回值为最后的结果。传入的值必须为函数类型 | callback:执行数组中每个值的函数,包含四个参数:
initialValue:作为第一次调用callback函数时的第一个参数的值。如果没有提供初始值,则将使用数组中的第一个元素。 在没有初始值的空数组上调用 reduce 将报错。 |
reduceRight() | 与reduce()类似,将数组元素计算为一个值,区别为从右向左操作 | |
indexOf() | 返回数组中某个指定的元素位置。 | |
lastIndexOf() | 返回一个指定的元素在数组中最后出现的位置,在一个数组中的指定位置从后向前搜索。 | 如果要检索的元素没有出现,则该方法返回 -1。 |
copyWithin(target, start, end) | 从数组的指定位置拷贝元素到数组的另一个指定位置中。 | target必需。复制到指定目标索引位置。 start可选。元素复制的起始位置。 end可选。停止复制的索引位置 (默认为 array.length)。如果为负值,表示倒数。 |
fill(value,start,end) | 用于将一个固定值替换数组的元素。 | |
find() | 返回通过测试(函数内判断)的数组的第一个元素的值。
| find() 并没有改变数组的原始值。 |
findIndex() | 返回传入一个测试条件(函数)符合条件的数组第一个元素位置。 | |
from() | 方法用于通过拥有 length 属性的对象或可迭代的对象来返回一个数组。 如果对象是数组返回 true,否则返回 false。 | |
includes() | 方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false。 | |
keys() | 方法用于从数组创建一个包含数组键的可迭代对象。 如果对象是数组返回 true,否则返回 false。 | |
values() | 方法用于从数组创建一个包含数组值的可迭代对象。 | |
entries() | 方法返回一个数组的迭代对象,该对象包含数组的键值对 (key/value)。 迭代对象中数组的索引值作为 key, 数组元素作为 value。 |
定义二维数组:
方法一:直接定义并且进行初始化,适用于数组元素已知且数据量较少的情况:
var _array = [["01","02"],["11","12"],["21","22"]]
方法二:使用两层for循环定义一个二维数组,适用于数组长度未知的情况:
var tArray = new Array(); //先声明一维
for(var i=0; i<k; i++){ //一维长度为k,k为变量,可以根据实际情况改变
tArray[i]=new Array(); //声明二维,每一个一维数组里面的一个元素都是一个数组;
for(var j=0;j<p;j++){ //一维数组里面每个元素数组可以包含的数量p,p也是一个变量;
tArray[i][j]=""; //这里将变量初始化,我这边统一初始化为空,后面在用所需的值覆盖里面的值
}
}
tArray[0] = ["12","32","456"]; // ["12", "32", "456"]覆盖初始化时的空值。
方法三:可以使用一层for循环定义二维数组,适用于已知的几个数组组合成一个二维数组的情况:
for(var i=0; i<k; i++){
tArray[i]=[ aArray[a],bArray[a],cArray[a]]; //还可以增加dArray[a],eArray[a]
};