js数组
数组是有序的数据集合。
数组属于对象类型。
数组的作用:用于在单个变量中存储多个值。
数组的基本方法
push() 在数组的后面添加(单个或多个)新元素,返回数组新的长度
let arr = [1,2,3,4]
var a = arr.push(5)
console.log(arr); //[ 1, 2, 3, 4, 5 ]
console.log(a); //5
pop() 删除数组的最后一个元素,返回被删除的元素
let arr = [1,2,3,4]
var a = arr.pop(5)
console.log(arr); //[ 1, 2, 3 ]
console.log(a); //4
unshift() 在数组的前面添加(单个或多个)新元素,返回数组新的长度
let arr = [1,2,3]
var a = arr.unshift(4,5)
console.log(arr); //[ 4, 5, 1, 2, 3 ]
console.log(a); //5
shift() 删除数组的第一个元素,返回被删除的元素
let arr = [1,2,3]
var a = arr.shift(4,5)
console.log(arr); //[ 2, 3 ]
console.log(a); //1
splice() 可以对数组进行增、删、改,返回一个数组(被删除的元素)
删除n项:arr.splice(起始位置,n)
增加元素:arr.splice(起始位置,0,添加1,添加2…)
修改元素:arr.splice(起始位置,2,替换1,替换2)
//删除
let arr = [1,2,3,4]
var arr2 = arr.splice(2,2)
console.log(arr); //[ 1, 2 ]
console.log(arr2); //[ 3, 4 ]
// 增加
let arr3 = [111,222,333]
var arr4 = arr3.splice(3,0,444,555)
console.log(arr3); //[ 111, 222, 333, 444, 555 ]
console.log(arr4); //[]
//修改
let arr5 = [111,222,333]
var arr6 = arr5.splice(0,3,444,555,666)
console.log(arr5); //[ 444, 555, 666 ]
console.log(arr6); //[ 111, 222, 333 ]
reverse() 将数组进行倒转,返回数组
arr.reverse();
let arr = [1,2,3,4,5]
let arr2 = arr.reverse()
console.log(arr); //[ 5, 4, 3, 2, 1 ]
console.log(arr2); //[ 5, 4, 3, 2, 1 ]
sort() 将数组进行排序,返回数组
arr.sort(); //默认按照字符编码排序
let arr = [51,64,55,79,31]
var arr2 = arr.sort()
console.log(arr); //[ 31, 51, 55, 64, 79 ]
console.log(arr2); //[ 31, 51, 55, 64, 79 ]
【注】以上方法都会改变原数组
slice() 从数组中拷贝一部分,返回新数组
arr.slice(1,4) 包含索引为1的元素,不包含索引为4的元素(拷贝索引为 1 2 3 的元素)
let arr = [1,2,3,4,5,6]
let arr2 = arr.slice(4)
console.log(arr2); //[ 5, 6 ]
concat() 用于合并数组,返回新数组
arr.concat(arr1,arr2…)
let arr = [1,2,3]
let arr2 = [4,5,6]
var arr3 = arr.concat(arr2)
console.log(arr3); //[ 1, 2, 3, 4, 5, 6 ]
toString() 将数组转成字符串,返回字符串
let arr = ['h','e','l','l','o']
let arr2 = arr.toString()
console.log(arr2);//h,e,l,l,o
join() 将数组转成字符串,参数为分隔符,返回字符串
let arr = ['h','e','l','l','o']
let arr2 = arr.join('')
console.log(arr2); //hello
[注]以上方法都不会改变原数组
includes()
数组的 includes() 方法用来判断一个数组是否包含一个指定的值,返回布尔值
let arr = [1,2,3,4,5]
console.log(arr.includes(1)); //true
console.log(arr.includes(6)); //false
数组遍历:
1,普通for循环,经常用的数组遍历
var arr = [1,2,3,4,5];
for ( var i = 0; i <arr.length; i++){
console.log(arr[i]);//1 2 3 4 5
}
2,forEach
var arr = [1,2,3,4,5];
arr.forEach(function (value, i) {
console.log(i + '--' + value); //0--1 1--2 2--3 3--4 4--5
})
3、map遍历,map即是 “映射”的意思 用法与 forEach 相似。不同点是map支持return返回值
var arr = [1,2,3,4,5];
arr.map(function (value, i) {
console.log(i + '--' + value); //0--1 1--2 2--3 3--4 4--5
})
for-of遍历
var arr = [1,2,3,4,5];
for( let i of arr){
console.log(i); //1 2 3 4 5
}
filter 过滤
筛选出符合要求的数组元素,返回新数组
let arr = [1,2,8,10,6,89,9,12]
let arr2 = arr.filter((item,index,arr)=>{
return item>10
})
console.log(arr2); //[89,12]