数组对象是使用单独的变量名来存储一系列值的有序集合
由中括号包裹多个同类数据且多个数据以逗号隔开
JavaScript的数组可以包括任意数据类型(同一数组的不同元素可以是不同的类型 ),如任意类型的值,表达式、字符串等等
javascriptarr=[value,value,value,value]
new Array()
javascriptarr[index]
javascriptvar a = [1,2,3];
for (var i = 0;i < 3;i++) {
console.log(a[i])
}
索引和赋值实现,当索引大于数组长度时则会增加元素
javascriptarr[index] = newValue
索引和赋值实现,当索引存在与数组长度内,此时由索引取值后赋值即可修改
javascriptarr[index] = newValue
length属性实现,当设置的长度小于数组长度则会截断数组
javascriptvar a = [1, 2, 3];
a.length = 2;
console.log(a)
数组中嵌套数组,称为多维数组,常见的有二维数组
Eg二维数组:
javascriptvar arr=[
1,
2,
[
"hello",
"world"
]
]
//此时访问hello
console.log(arr[2][0])
获取数组长度
使用数组的length属性
javascriptarr.length
将其转为字符串,并且以逗号拼接
javascriptarray.toString()
javascriptvar a = [1,2,3];
var b = a.toString();
console.log(b+typeof(b));
/*
输出: 1,2,3string
*/
把数组中的所有元素转换一个字符串,如果不指定拼接符则默认使用逗号拼接
返回一个字符串。该字符串是通过把 arrayObject的每个元素转换为字符串,然后在这些字符串两个元素之间插入separator拼接符生成
javascriptarray.join(separator)
提取数组的某个部分,并以新的字符串返回被提取的部分含头不含尾
javascriptarray.slice(start, end)
参数 | 说明 |
---|---|
start | 规定从何处开始选取,若为负数则表示从原数组的倒数第几个元素开始提取,从右往左提取 |
end | 规定从何处结束选取,若此参数省略,则表示直接选取到数组结束;若此参数为负数,原数组中的倒数第几个元素结束抽取 |
javascriptvar a = [1, 2, 3,4,5,6];
var c = a.slice(0,4);
var c2=a.slice(-3,-1);
console.log(c);
console.log(c2);
/*
[ 1, 2, 3, 4 ]
[ 4, 5 ]
*/
查找数组内元素,查找到则返回对应索引,若没有查找到则返回-1
javascriptarray.indexOf(x,start)
x: 查找的字符串值
start:规定从何处开始查找
通过指定函数处理数组的每个元素,并返回处理后的数组(新数组的每个元素由调用原始数组中的每一个元素执行提供的函数得到)
新数组个数和原数组一致
适用于对数组进行处理,且后续还要使用的场景
括号中必须使用函数作为参数
javascriptarray.map(function(currentValue,index,arr), thisValue)
默认情况下也会传入三个函数参数
function(currentValue,index,arr):必须,函数,可以直接定义函数后调用函数名
currentValue: 必须 当前元素的值
index: 可选,当前元素的索引值
arr: 可选,当前元素属于数组对象
thisValue: 可选。对象作为该执行回调时使用,传递给函数,用作"this"的值。如果省略了thisValue,或者传入null、undefined,那么回调函数的this为全局对象。
javascriptvar a = [1, 2, 3, 4, 5];
function fn(i) {
c = i*2;
return c;
};
var b = a.map(fn);
console.log(b)
/*
返回结果:
[2,4,6,8,10]
*/
检测数组元素,并返回符合条件所有元素的数组
括号中必须使用函数作为参数
javascriptarray.filter(function(currentValue,index,arr), thisValue)
function: 必须。函数,数组中的每个元素都会执行这个函数
currentValue: 必须 当前元素的值
index: 可选,当前元素的索引值
arr: 可选,当前元素属于数组对象
javascriptvar a = [1, 2, 3, 4, 5];
function fn(i) {
return i>2;
};
var b = a.filter(fn);
console.log(b)
/*
【3,4,5】
*/
用于连接两个或多个数组
返回被连接数组的一个副本
javascriptarr1.concat(arr2)
调用数组的每个元素,并将元素传递给回调函数
forEach() 对于空数组是不会执行回调函数的
javascriptarray.forEach(function(currentValue, index, arr), thisValue)
检测数组元素中是否有元素符合指定条件
array.some(function(currentValue,index,arr),thisValue)
检测数组元素中是否含有指定的值,如果有则返回true,否则返回flase
arr.includes(searchElement, fromIndex)
searchElement:要查找的元素
fromIndex:从何处开始查找
向数组的末尾添加一个或更多元素,并返回新的长度
javascriptarray.push(item1, item2, ..., itemX)
item: 必须,添加到数组中的元素
向数组的开头添加一个或更多元素,并返回新的长度
javascriptarray.unshift(item1,item2, ..., itemX)
tem1,item2, ..., itemX 可选,向数组起始位置添加一个或者多个元素
删除数组最后一个元素,并返回删除的元素
javascriptarray.pop()
删除数组第一项,并返回删除的元素
javascriptarray.shift()
添加或删除数组中的元素
javascriptarray.splice(index,howmany,item1,.....,itemX)
index:必需,且为数字规定从何处添加/删除元素
howmany:必需,且为数字,规定应该删除多少元素
item1...itemn:要添加到数组的新元素
若从原数组中删除了元素,返回的时被删除元素组成的数组
javascriptvar a = [1, 2, 3, 4, 5];
var b = a.splice(1,2);
console.log(b);
/*
输出结果
[2,3]
*/
反转数组的元素顺序(倒序排列)
javascriptarray.reverse()
倒序排列后的数组
对数组的元素进行排序,按照unicode编码排序
javascriptarray.sort(sortfunction)
/*
sortfunction:(a,b)=>{a-b},
该函数接受两个默认参数,依次为:第一个用于比较的元素、第二个用于比较的元素
*/
compareFn(a, b) 返回值 | 排序顺序 |
---|---|
> 0 | a 在 b 后 |
< 0 | a 在 b 前 |
=== 0 | 保持 a 和 b 的顺序 |
常用升序排序,数组内不包含NaN、Infinite (a,b)=>{a-b}
用于判断传入的值是否为数组,是则返回true,否则返回false
Array.isArray(obj)
接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值
array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
function:必需。用于执行每个数组元素的函数
initialValue: 可选。传递给函数的初始值
本文作者:RKLS
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!