js中操作数组的方法
创建数组的两种方法
- var arr=[ ];
- var arr=new Array();
1 .向数组中添加元素
添加元素的两种方法都会返回方法执行后的数组长度
>会改变原数组<
(1) unshift向数组的前面添加一个元素
let arr = [1, 2, 3, 4];
arr.unshift('叼毛');
console.log(arr); // ===>["叼毛", 1, 2, 3, 4]
(2) push向数组的末尾添加一个元素
let arr = [1, 2, 3, 4];
arr.push('叼毛');
console.log(arr); // ==>[1, 2, 3, 4, "叼毛"]
2.删除数组中的元素
这两个方法的返回值都是被删除的元素
>会改变原数组<
(3) shift 删除数组中的第一个元素
let arr = [1, 2, 3, 4];
arr.unshift();
console.log(arr); //===>[2, 3, 4]
(4) pop 删除数组中的最后一个元素
let arr = [1, 2, 3, 4];
arr.pop();
console.log(arr); //===>[1,2, 3]
3.拼接,连接,反转
(5) concat 把多个数组进行拼接
返回值是拼接完成后的数组
>不会改变原数组<
let arr1 = [1, 2, 3, 4];
let arr2 = [5, 6, 7];
let arr3 = [8, 9];
// console.log(arr.shift()); //===>[1, 2, 3, 4]
console.log(arr1.concat(arr2, arr3));
// ==>[1, 2, 3, 4, 5, 6, 7, 8, 9]
console.log(arr2.concat(arr1, arr3));
// ==>[5, 6, 7, 1, 2, 3, 4, 8, 9]
(6)join 连接数组内部的元素
返回值是连接完成的数组
>不会改变原数组<
let arr = [1, 2, 3, 4];
let newArr = arr.join('=叼毛=>');
console.log(newArr); //===>1=叼毛=>2=叼毛=>3=叼毛=>4
(7)reverse 反转数组
返回值是反转后的数组
>会改变原数组<
let arr = [1, 2, 3, 4];
arr.reverse();
console.log(arr); //==>[4, 3, 2, 1]
高阶函数方法 map映射 和 filter过滤器
(8)map映射
返回值是处理后的数组
>不会改变原数组<
语法:
var 接收的数组 = 目标数组.map ( function (item,index,array){
能够用来调用数组中的 item项 index 索引 array是数组本身
能够 统一对数组所有元素进行操作
})
//原来的对象数组:
let arr = [{
name: '叼毛一号',
age: 23,
sex: '未知'
}, {
name: '叼毛二号',
age: 25,
sex: '男'
}, {
name: '叼毛三号',
age: 32,
sex: '女'
}];
//使用map映射得到原数组对象中的部分属性
let newArr = arr.map(function (item) {
return {
name: item.name,
age: item.age
}
})
console.log(newArr); //获取到了arr中的name和age的属性和值
(9)filter过滤器
返回值是处理后的数组
>不会改变原数组<
语法 : let 接收的数组 = 目标数组.filter ( function (item,index,array){
能够用来调用数组中的 item项 index 索引 array是数组本身
能够 统一对数组所有元素进行条件的判定
})
let arr = [1, 2, 3, 4];
let newArr=arr.filter(function (item) {
return item > 2;
});
console.log(newArr); //====> [3, 4]
indexOf和splice
(10)indexOf判断是否有要找的项
返回值:如果找到了对应的元素,返回值是数组中指定的元素位置【多个时候返回第一个】,如果没有找到返回值是-1
>不会改变原数组<
//使用indexOf进行数组去重的操作
let arr = [1, 2, 1, 2, 3, 4, 5, 6, 6, 0];
let newArr = [];
for (var i = 0; i < arr.length; i++) {
if (newArr.indexOf(arr[i]) === -1) {
newArr.push(arr[i]);
}
}
console.log(newArr); //===>[1, 2, 3, 4, 5, 6, 0]
(11)splice 方法向/从数组中添加/删除项目
返回值 : 返回被删除的项目
>会改变原数组<
语法: 数组.splice(index(1),howmany(2),item1,…,itemX(3))
(1)必需:规定添加/删除项目的位置,使用负数可从数组结尾处规定位置
(2)必需。要删除的项目数量。如果设置为 0,则不会删除项目。
(3)可选。向数组添加的新项目。
//向元素的第二个位置添加 叼毛 这个项
let arr=[1,2,3,4,5,6];
arr.splice(2,0,'叼毛');
// console.log( arr.splice(2,0,'叼毛')); 返回值 []
console.log(arr); //===> [1, 2, "叼毛", 3, 4, 5, 6]
//从元素的第二个位置向后删除3个
let arr=[1,2,3,4,5,6];
arr.splice(2,3);
// console.log(arr.splice(2,3))返回值 [6]
console.log(arr); //===> [1, 2, 6]
//从数组的第二个位置开始向后删除两个,并用 叼毛 替代
let arr=[1,2,3,4,5,6];
arr.splice(2,2,'叼毛');
//console.log(arr.splice(2,2,'叼毛')) 返回值 ["叼毛", 5]
console.log(arr); //===> [1, 2, "叼毛", 5, 6]