以下只是大部分的常用方法,是一些比较常用的,如果还有其它的,我还会在进行补充
<script>
// 箭头函数如果只有只有一个参数,可以不写括号,如果函数体只有一行代码,花括号和return可以省略
var a1 = [1, 234, 'sdf', 'vd', 'zxc', 'few', 'asd', 'q', 'qs']
var num = [46, 16, 48, 1, 6, 448, 8, 16, , 412, 0, -45, 1]
var a3 = 111
var sum = 0
1======concat用于连接两个或多个数组。不会改变现有的数组,
var aa = a1.concat(a3)
console.log(aa);//(10) [1, 234, "sdf", "vd", "zxc", "few""asd", "q", "qs", 111]
2========every,有没有return都可以检测数值元素的每个元素是否都符合条件
var aa = num.every((item, index) => {
item > -111
})
console.log(aa); //true
3===========filter,必须要加return,检测数值元素,并返回符合条件所有元素的数组。
var aa = num.filter((item, index) => {
return item > 0
})
console.log(aa); //(10) [46, 16, 48, 1, 6, 448, 8, 16, 412, 1]
4========== find必须要加return,返回符合测试条件的第一个数组元素值,如果没有符合条件的则返回 undefined。
var aa = num.find((item, index) => {
return item < 10
})
console.log(aa);//1
5==========findIndex必须要加return,返回符合测试条件的第一个数组元素索引,如果没有符合条件的则返回 -1。
var aa = num.findIndex((item, index) => {
return item < 10
})
console.log(aa); //3
6==========forEach并不改变原数组,遇到了return就会跳过本次循环,类似于continue
num.forEach((item, index) => {
// console.log(item, index);
if (index > 1) {
return
}
sum += item
console.log(item); //46 16
})
console.log(sum); //62
注:以下情况可以使用forEach改变原数组,详情见下图
var num = [46, 16, 48, 1, 6, 448, 8, 16, , 412, 0, -45, 1]
7==========includes,第二个为索引值,从索引值的地方开始查找
var aa = num.includes(16, 2)
console.log(aa); //true
8==========indexOf,第二个为索引值,从索引值的地方开始查找,返回 item 的第一次出现的位置,没有就返回-1
var aa = num.indexOf(16, 1)
console.log(aa); //1
9==========join,返回一个拼接好的字符串,默认返回的是以逗号分割的字符串
var aa = num.join()
console.log(aa); //46,16,48,1,6,448,8,16,,412,0,-45,1
var bb = num.join(',')
console.log(bb); //46,16,48,1,6,448,8,16,,412,0,-45,1
var cc = num.join('')
console.log(cc); //461648164488164120-451
var dd = num.join('+')
console.log(dd); //46+16+48+1+6+448+8+16++412+0+-45+1
10==========lastIndexOf()返回它最后出现的位置(与IndexOf()用法相同,结果相反)
11==========map() 不会改变原始数组,他会返回一个新数组,必须加return
var aa = num.map((item, index) => {
return item * 2
})
console.log(aa); //(13) [92, 32, 96, 2, 12, 896, 16, 32, empty, 824, 0, -90, 2]
map是专门用来对数组中的每一项进行运算的,而不是用来判断,如果想要对数组进行过滤应该采用filter
var aa = [1, 2, 5, 7, 4, 5]
let bb = aa.map(item => item > 2)
console.log(bb);//(6) [false, false, true, true, true, true]
var num = [46, 16, 48, 1, 6, 448, 8, 16, , 412, 0, -45, 1]
12==========reverse()将数组翻转,他会改变原数组
var aa = num.reverse()
console.log(aa); //(13) [1, -45, 0, 412, empty, 16, 8, 448, 6, 1, 48, 16, 46]
console.log(num); //(13) [1, -45, 0, 412, empty, 16, 8, 448, 6, 1, 48, 16, 46]
13==========slice()从已有的数组中返回选定的元素,有头无尾
var aa = num.slice(1, 3)
console.log(aa); //(2) [16, 48]
var bb = num.slice(-3, -1)
console.log(bb); //(2) [16, 48]//(2) [0, -45]
var dd = num.slice(1)
console.log(dd); //(12) [16, 48, 1, 6, 448, 8, 16, empty, 412, 0, -45, 1]
14==========some()检测数组中的元素是否满足指定条件,如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。佛欧泽返回false,它和every相反
var aa = num.some((item, index) => {
return item > -111
})
console.log(aa); //true
var num = [46, 16, 48, 1, 6, 448, 8, 16, , 412, 0, -45, 1]
15==========sort()对数组的元素进行排序,他会改变原数组
var aa = num.sort(function(a, b) {
return a - b//按照升序排列
});
var aa = num.sort() //默认按照升序排列
console.log(aa); //(13) [-45, 0, 1, 1, 6, 8, 16, 16, 46, 48, 412, 448, empty]
console.log(num); //(13) [-45, 0, 1, 1, 6, 8, 16, 16, 46, 48, 412, 448, empty]
16==========splice(index,num,element1,element2...)用于添加或删除数组中的元素,这种方法会改变原始数组。第一个参数为索引,第二个为个数,意为:在索引为index的地方,删除num个元素,并在索引为index的后面,添加element1,element2...
var aa = num.splice(2, 2) //删除元素
console.log(aa); //(2) [48, 1]
var aa = num.splice(2, 0, 9999) //添加元素
console.log(aa); //[]
console.log(num); //(14) [46, 16, 9999, 48, 1, 6, 448, 8, 16, empty, 412, 0, -45, 1]
var aa = num.splice(2, 2, 9999, 8888) //删除并添加元素
console.log(aa); //(2) [48, 1]
console.log(num); //(13) [46, 16, 9999, 8888, 6, 448, 8, 16, empty, 412, 0, -45, 1]
var num = [46, 16, 48, 1, 6, 448, 8, 16, , 412, 0, -45, 1]
</script>
</body>
</html>
一下两张图是对forEach的补充