- push() 向数组的末尾添加一个或多个元素,原数组发生改变,返回一个新数组,使用push是原数组中的元素类型必须和添加的元素类型保持一致
var arr=[1,2,3]
arr.push(4)
输出arr结果为:arr=[1,2,3,4]
- pop()该方法可以删除数组中的最后一个元素,原数组发生改变,删除的元素作为返回值
var arr=['a','b','c']
console.log(arr.pop())
输出结果为c
3.shift()删除数组中的第一个元素,原数组发生改变,删除的元素作为返回值
var arr=['a','b','c']
console.log(arr.shift('d'))
输出结果为:a
- **unshift()**向数组的开头添加一个或多个元素,原数组发生改变,新数组的长度作为返回值,向前面插入元素以后,其他的元素的索引会依次调整
var arr=['a','b','c']
console.log(arr.unshift('d'))
输出结果为:4
- 数组的遍历
for循环
var arr=[1,2,3]
for(let i=0;i<arr.length;i++){
console.log(arr[i])
}
打印结果为:1,2,3
forEach循环。forEach接受一个回调函数,回调函数的参数包含三个变量,第一个参数是当前遍历数组中的某个元素,第二个参数是该元素在数组中的下标,第三个元素是数组本身。如果只传入一个变量,该变量表示每个元素。
var arr=[1,2,3]
arr.forEach((a,b,c)=>console.log(a,b,c))
打印结果为:1,0,[1,2,3]
2,1,[1,2,3]
3,2,[1,2,3]
- **slice()**可以从数组中提取元素。可以传两个参数,第一个参数是截取开始位置的索引,第二个参数是截取结束位置的索引
第二个参数可以省略不写,表示从start开始的后边都被截取(包头不包尾)。第二个参数还可以传入一个负值表示从后开始数,该方法不会影响原数组,返回新数组;
var arr=[1,2,3]
console.log(arr.slice(1,2))
打印结果为:2
- **splice()**删除数组中的指定元素,或是添加加元素到指定位置,可以传三个参数,第一个参数是开始位置的索引,第二个参数是删除的个数,第三个参数是需要插入到开始位置的前面的元素(可有可无)。使用splice会影响原数组,并将被删除的元素作为返回值返回。
var arr=[1,2,3]
console.log(arr.splice(0,1))
输出结果为:1
arr.splice(0,1,4)
console.log(arr)
输出结果为:[4,2,3],将元素4插入到第一个元素的位置
可以用splice方法去除数组中的重复元素
var arr = [1,2,2,3,4,4,3,4,4,5,5,7];
for (var i = 0; i < arr.length; i++) {
for (var j = 1+i; j < arr.length; j++) {
if(arr[i]===arr[j]) {
arr.splice(j,1);
j--;//注意删了一位后,后面的数自动往前推一位,导致相邻的一位没有被比较
}
}
}
console.log(arr)
es6新增的方法Set可以实现一句话去重
new Set(arr)
,即可实现将arr内的元素去重
8.concat()连接两个或多个数组,返回新数组
var arr1=[1,2,3]
var arr2=['a','b','c']
var newarr=arr1.concat(arr2)
console.log(newarr)
输出结果为:[1,2,3,'a','b','c']
9.reverse()反转数组,将数组内的元素从右往左重新排列
var arr=[1,2,3]
console.log(arr.reverse())
输出结果为:[3,2,1]
10.**sort()**数组排序
var arr2 = [1,4,5,6,3,65,11];
arr2.sort(function(a,b) {
return a-b; //(升序)输出结果为[1,3,4,5,6,11,65]
return b-a;//(降序) 输出结果为[65,11,6,5,4,3,1]
})
11.indexOf查找数组中是否存在某元素
var arr2 = [1, 4, 5, 6, 6, 5, 3];
console.log(arr2.indexOf(4))
存在的话输出结果为1,不存在输出-1
12.find和findIndex
stu.find((element) => (element.name == '李四'));
//返回的是{name: "李四", gender: "男", age: 20}这个元素
stu.findIndex((element)=>(element.name =='李四'));
//返回的是索引
- flter 筛选数组中的指定元素,返回一个新数组
<p>点击按钮返回数组 ages 中所有元素都大于输入框指定数值的元素。</p>
<p>最小年龄: <input type="number" id="ageToCheck" value="18"></p>
<button onclick="myFunction()">点我</button>
<p>所有大于指定数组的元素有? <span id="demo"></span></p>
<script>
var ages = [32, 33, 12, 40];
function checkAdult(age) {
return age >= document.getElementById("ageToCheck").value;
}
function myFunction() {
document.getElementById("demo").innerHTML = ages.filter(checkAdult);
}
</script>
</body>