一、concat()
concat() 方法用于连接两个或多个数组。该方法不会改变现有的数组,仅会返回被连接数组的一个副本。
var arr1 = [1,2,3]; var arr2 = [4,5]; var arr3 = arr2.concat(arr1); var arr4 = arr1.concat(arr2); console.log(arr3);//[4, 5, 1, 2, 3] console.log(arr4);//[1, 2, 3, 4, 5]
二、join()
join() 方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的,默认使用','号分割,不改变原数组。
var arr1 = [1,2,3]; var arr2=arr1.join(); console.log(arr2);//1,2,3 var arr3=arr1.join('*'); console.log(arr3);//1*2*3
三、push()
push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。末尾添加,返回的是长度,会改变原数组。
var arr1 = [1,2,3]; var arr2=arr1.push(5,'x'); console.log(arr1);//[1, 2, 3, 4, "x"] console.log(arr2);//5
四、pop()
pop() 方法用于删除数组的最后一个元素并返回删除的元素,会改变原数组
var a=[4,5,6,7,8,9,10] console.log(a.pop());//10 console.log(a);//[4, 5, 6, 7, 8, 9]
五、shift()
shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。返回第一个元素,改变原数组。
var arr1 = [1,2,3]; var arr2=arr1.shift(); console.log(arr1);//[2, 3] console.log(arr2);//1
六、unshift()
unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。返回新长度,改变原数组。
var arr1 = [1,2,3]; var arr2=arr1.unshift(9,10); console.log(arr1);//[9, 10, 1, 2, 3] console.log(arr2);//5
七、slice()
slice() 方法返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。返回选定的元素,该方法不会修改原数组。
八、splice()
splice() 方法可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组。splice() 方法会直接对数组进行修改。
九、sort排序
按照 Unicode code 位置排序,默认升序
var fruit = ['cherries', 'apples', 'bananas']; fruit.sort(); // ['apples', 'bananas', 'cherries'] var scores = [1, 10, 21, 2]; scores.sort(); // [1, 10, 2, 21]
十、reverse()
reverse() 方法用于颠倒数组中元素的顺序。返回的是颠倒后的数组,会改变原数组。
var a =['a','b','c','d']; var b=[6,4,7,8] console.log(a.reverse());//["d", "c", "b", "a"] console.log(b.reverse());//[8, 7, 4, 6]
十一、indexOf 和 lastIndexOf
indexOf 和 lastIndexOf 都接受两个参数:查找的值、查找起始位置,不存在,返回 -1 ;存在,返回位置。indexOf 是从前往后查找, lastIndexOf 是从后往前查找。
//indexOf var a = [2, 9, 9]; a.indexOf(2); // 0 a.indexOf(7); // -1 if (a.indexOf(7) === -1) { // element doesn't exist in array } //lastIndexOf var numbers = [2, 5, 9, 2]; numbers.lastIndexOf(2); // 3 numbers.lastIndexOf(7); // -1 numbers.lastIndexOf(2, 3); // 3 numbers.lastIndexOf(2, 2); // 0 numbers.lastIndexOf(2, -2); // 0 numbers.lastIndexOf(2, -1); // 3
十二、some()&every()
some方法是只要有一个数组成员的返回值为true,则返回true,否则false;
every方法是需要每一个返回值为true,才能返回true,否则为false;
const arr = [3,4,4,5,4,6,5,7]; console.log( arr.some( function( item, index, array ){ console.log( 'item=' + item + ',index='+index+',array='+array ); return item > 3; })); // item=3,index=0,array=3,4,4,5,4,6,5,7 // item=4,index=1,array=3,4,4,5,4,6,5,7 // true console.log( arr.every( function( item, index, array ){ console.log( 'item=' + item + ',index='+index+',array='+array ); return item > 3; })); // item=3,index=0,array=3,4,4,5,4,6,5,7 //false
十三、Array.isArray()
用来判断是不是数据是不是一个数组,返回值为true或false。
const arr = [3,4,4,5,4,6,5,7]; console.log(Array.isArray(arr)) // true
十四、find()
返回符合传入测试(函数)条件的数组元素。
const arr = [3,4,4,5,4,6,5,7]; const a = test.find(item => item > 3); console.log(a); //4(find() 方法返回通过测试(函数内判断)的数组的第一个元素的值。) const b = test.find(item => item == 0); console.log(b); //undefined(如果没有符合条件的元素返回 undefined) 。
十五、map()
依次遍历数组成员,根据遍历结果返回一个新数组。(map方法同样适用于字符串,但是不能直接调用,需要通过函数的call方法,间接使用,或者先将字符串川转为数组,再使用)(不会改变原始数组)。
const arr = [3,4,4,5,4,6,5,7]; const a = arr.map(item => item*2) console.log(a);// [6, 8, 8, 10, 8, 12, 10, 14]
十六、foreach()
跟map方法类似,遍历数组,区别是无返回值。
var arr = [15, 8, 7, 8]; var a =arr.forEach((item, index) => { console.log(index + ":" + item); }); console.log(a); //undefined
十七、filter()
一个过滤方法,参数是一个函数,所有的数组成员依次执行该函数,返回结果为 true 的成员组成一个新数组返回。(不会改变原始数组)。
const arr = [3,4,4,5,4,6,5,7]; const a = arr.filter(item => item % 3 > 1); console.log(a); // [5, 5]
十八、reduce()
依次处理数组的每个成员,最终累计成一个值。
a:必填,累计变量;b:必填,当前变量;x: 可选,当前位置;y:可选,原数组。
let arr = [58, 98, 56, 21, 54]; //求和 let result = arr.reduce(function(tem, item, index) { /*三个参数 1.tem 代表中间数 2.item代表arr中的值 3.index代表次数 */ console.log(index + ':' + tem); console.log(index + ':' + item); return tem + item; }) console.log(result);//287 //求平均数 let result1 = arr.reduce(function(tem, item, index) { //不是最后一次 if (index != arr.length - 1) { return tem + item; } //是最后一次 else { return (tem + item) / arr.length; } }); console.log(result1);//57.4