改变原数组的方法
push,pop,shift,unshift,sort,reverse,splice
var arr = [];
arr.push(10);在数组的最后一位添加数据10,添加个数多少都可以,返回长度
arr.push(4,3,2,'nihao');
arr.pop()//传参没用,把最后一位进行剪切
arr.shift()//在数组前面剪切,传参没用,返回剪切的元素
arr.unshift()//在数组前面添加,添加个数多少都可以,返回长度
arr.reverse()//将原数组反转顺序
arr.splice()//切片,参数(从第几位开始,截取多少的长度,在切口处插入新的数据)
负数代表倒数第几位,
var arr = [4, 1, 9, 2, 3, 8];
如:arr.splice(-1,2); [8] arr.splice(-1,3);[3]
arr.splice(1,2);//返回截取的元素
var arr = [1,3,10,-1,0,9];
arr.sort()改变数组的顺序,升序.arr.sort();直接用,不能对超过10以上的数字排序。
2.看返回值1)当返回值为负数时,那么前面的数放在前面
2)为正数,那么后面的数放在前
3)为0 不动
不改变原数组的方法
arr1.concat(arr2);合并数组,不改变原数组,返回合并后的数组
slice方法用于复制目标数组的一部分,返回一个新数组,原数组不变。
如果slice方法的参数是负数,则表示倒数计算的位置。
join 以指定的参数作为分隔符,将所有数组成员链接为一个字符串返回,如果不提供参数,默认用逗号分隔,
数组新增方法
静态方法
Array.isArray(arr)
Array.isArray方法返回一个布尔值,表示参数是否为数组。它可以弥补typeof运算符的不足
typeof运算符只能显示数组的类型是Object,而Array.isArray方法可以识别数组
实例(对象)方法
map方法将数组的所有成员依次传入参数函数,然后把每一次的执行结果组成一个新数组返回
map方法接受一个函数作为参数。该函数调用时,map方法向它传入三个参数:当前成员、当前位置和数组本身
forEach方法与map方法很相似,也是对数组的所有成员依次执行参数函数。但是,forEach方法不返回值,只用来操作数据。
这就是说,如果数组遍历的目的是为了得到返回值,那么使用map方法,否则使用forEach方法
注意,forEach方法无法中断执行,总是会将所有成员遍历完。如果希望符合某种条件时,就中断遍历,要使用for循环
filter()
filter方法用于过滤数组成员,满足条件的成员组成一个新数组返回
它的参数是一个函数,所有数组成员依次执行该函数,返回结果为true的成员组成一个新数组返回。该方法不会改变原数组。
filter方法的参数函数可以接受三个参数:当前成员v,当前位置i和整个数组。
reduce方法依次处理数组的每个成员,最终累计为一个值。reduce是从左到右处理(从第一个成员到最后一个成员)
reduce方法参数是一个函数,该函数接受以下两个参数。
1累积变量,默认为数组的第一个成员
2当前变量,默认为数组的第二个成员
indexOf(),lastIndexOf()
indexOf方法返回给定元素在数组中第一次出现的位置,如果没有出现则返回-1。
[NaN].indexOf(NaN) // -1
[NaN].lastIndexOf(NaN) // -1
这是因为这两个方法内部,使用严格相等运算符(===)进行比较,
而NaN是唯一一个不等于自身的值
//find参数是一个函数,函数的返回值是查找条件,返回找到的对象,找不到返回undefined
//findIndex找到满足条件的元素的下标,找不到返回-1
some 判断数组中是否有一些元素 满足条件,返回布尔值
every 判断数组中所有的元素是否 满足条件,返回布尔值