我总结数组中的方法归为两类,一种是会改变原数组的,一种是不改变原数组的
这里将会介绍改变原数组的方法
1.pop()移除数组最后一个元素
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.pop(); console.log(fruits) //[ 'Banana', 'Orange', 'Apple' ]
2.push()把元素添加到数组尾部
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.push("Kiwi") 结果输出 Banana,Orange,Apple,Mango,Kiwi
3.reverse()在原数组中颠倒元素的顺序。
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.reverse(); 输出结果 Mango,Apple,Orange,Banana
4.shift ()移除数组的第一个元素。
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.shift() 结果 Orange,Apple,Mango
5.sort ()在原数组中对数组元素进行排序。
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.sort(); 输出结果 Apple,Banana,Mango,Orange
6.splice()插入、删除或替换数组元素。
语法 array.splice(index,howmany,item1,.....,itemX)
index 表示要操作数组的开始位置索引值,必填
howmany 表示要删除元素的个数 必须是数字 可以是0,如果没填就是删除从index 开始到数组的结尾
item1.... 表示要添加到数组中的新值
var fruits = ["Banana", "Orange", "Apple", "Mango"]; var newarray = fruits.splice(2); console.log(fruits) console.log(newarray) 结果是 [ 'Banana', 'Orange' ] [ 'Apple', 'Mango' ] 改变原数组 返回的是被删除的元素的数组集合
7.unshift()在数组头部插入元素。
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.unshift("Lemon","Pineapple"); fruits 将输出: Lemon,Pineapple,Banana,Orange,Apple,Mango
上面7个分别是 添加元素 push unshift 移除元素 pop shift 颠倒顺序 reverse 删除元素 splice 元素排序 sort
8.forEach map filter 等遍历数组的情况下 ,在遍历中区修改原数组
这里需要注意的是 在遍历中修改元素值的时候 有两种情况 一个是元素值是基本数据类型的 还有一种情况是元素值是引用数据类型的值
第一种情况下 直接去修改基本数据类型的值 是不会改变原数组的,需要借助 index 来实现改变
let arr = [1,3,5,7,9]; arr.forEach(function(item,index,arr){ arr[index] = 30; }) console.log(arr); //输出 (5) [30, 30, 30, 30, 30]
第二种情况的时候
var fruits = [ { name:'aaa', id: 1 }, { name:'bbb', id:2 } ]; fruits.map(item => { if (item.id === 1){ item.name = 'Banana----new' } }) console.log(fruits)