数组常用方法总结

  1. push() 向数组的末尾添加一个或多个元素,原数组发生改变,返回一个新数组,使用push是原数组中的元素类型必须和添加的元素类型保持一致
var arr=[1,2,3]
arr.push(4)
输出arr结果为:arr=[1,2,3,4]
  1. pop()该方法可以删除数组中的最后一个元素,原数组发生改变,删除的元素作为返回值
var arr=['a','b','c']
console.log(arr.pop())
输出结果为c

3.shift()删除数组中的第一个元素,原数组发生改变,删除的元素作为返回值

var arr=['a','b','c']
console.log(arr.shift('d'))
输出结果为:a
  1. **unshift()**向数组的开头添加一个或多个元素,原数组发生改变,新数组的长度作为返回值,向前面插入元素以后,其他的元素的索引会依次调整
var arr=['a','b','c']
console.log(arr.unshift('d'))
输出结果为:4
  1. 数组的遍历
    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]
  1. **slice()**可以从数组中提取元素。可以传两个参数,第一个参数是截取开始位置的索引,第二个参数是截取结束位置的索引
    第二个参数可以省略不写,表示从start开始的后边都被截取(包头不包尾)。第二个参数还可以传入一个负值表示从后开始数,该方法不会影响原数组,返回新数组;
var arr=[1,2,3]
console.log(arr.slice(1,2))
打印结果为:2
  1. **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 =='李四')); 
//返回的是索引
  1. 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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值