JavaScript 数组方法
-
把数组转换为字符串
-
toString()
let color = ["red", "blue", "green", "yellow"]; let b=color.toString(); console.log(b) //red,blue,green,yellow
-
join()
let color = ["red", "blue", "green", "yellow"]; let b=color.join("*"); console.log(b) //red*blue*green*yellow
-
-
pop() 和 push()
-
pop
//pop删除数组中最后一个元素 let color = ["red", "blue", "green", "yellow"]; color.pop() //["red", "blue", "green"]
-
push
//push向数组添加新的元素 let color = ["red", "blue", "green", "yellow"]; color.push("orange") //["red", "blue", "green", "yellow",orange];
-
-
shift()和unshift()
-
shift()
//删除首个数组元素 let color = ["red", "blue", "green", "yellow"]; color.shift() //[blue", "green", "yellow"]
-
unshift()
//向数组添加首个元素 let color = ["red", "blue", "green", "yellow"]; color.unshift("orange") //["orange","red", "blue", "green", "yellow"]
-
-
splice()
-
splice()
一 //用于向数组添加新项 let color = ["red", "blue", "green", "yellow"]; color.splice(2, 0, "orange", "b") //["orange","red","orange", "b", "blue", "green", "yellow"] 参数一 插入的下标的位置 参数二 删除元素的个数 二 //删除元素 let color = ["red", "blue", "green", "yellow"]; color.splice(0, 1) //[blue", "green", "yellow"];
-
-
concat()
//合并数组 let a=[1,2,3]; let b=[4,5]; let c=a.concat(b); //console.log(c) [1,2,3,4,5]
-
slice()
let a=[1,2,3]; let b=a.slice(0,1); //console.log(b) [1]
-
sort()
let a=[1,2,4,3]; a.sort() //数组排序 console.log(a) //1,2,3,4
-
reverse()
let a=[1,2,4,3]; a.sort() //[1,2,3,4] a.reverse() //[4,3,2,1] //反转数组
-
Math.max()和Math.min()
//Math.max() 查找数组中的最大值 //Math.min() 查找数组中的最小值 let a=[1,2,5,6] Math.max(1,2,3,4) //4 let c=Math.max.apply(null,a) //6 总结 Math.max 参数里面不支持Math.max([param1,param2]) 也就是数组 Math.max.apply 第一个参数是对象(this),第二个参数是一个数组集合,
-
Array.forEach()
arr.forEach((value,index,array)=>{ //分别对应:数组元素,元素的索引,数组本身 ,无return 也不会返回任何值,并且会改变原来的数组 console.log(value); console.log(index); console.log(array); })
-
Array.map()
//map不必改变原来的数组 有return let arr = [0,1,4,5,8]; let arr2 = arr.map((item,index,arr)=>{ return item })
-
indexOf()
```
// indexOf : 在数组之中查找某个数据的下标,如果数据不存在,那么就返回 -1;
var arr = [1,2,3,4,5,5,5,5,5,5,5,6,7,8];
// arr.indexOf( 数据 , startIndex );
// var res = arr.indexOf( 5 ); // 4 ;
// var res = arr.indexOf( 5 , 7 ); // 7 ;
// indexOf 可以规定我们查找开始的位置是哪里;
// console.log(res);
// indexOf 从左到右查找;
// lastIndexOf 从右到左查找;
var res = arr.lastIndexOf( 5 ); //
console.log(res);
```
-
filter()
// var arr = [1,2,3,4,5,6] // filter 新数组放入数据的规则 : // 如果当前的计算结果为true (函数的返回值为true); // 那么这一项数据会被放入到新的数组之中; // var res = arr.filter( function( item ){ // // return item > 3; // return item % 2 === 0 // });
-
some , every , reduce
// some 的参数和上面的参数完全一致; // 返回值 : 布尔值; // 有一个项符合规则即可; // 如果在所有的函数之中有一个返回值为true,那么some的返回结果即为true , 同时短路; // var arr = [1,2,3,3,4,5,6,67,78,8]; // var res = arr.some( function( item ){ // // 语义 : 有没有大于7 的数字; // console.log(1); // return item > 100 ; // }) // console.log(res); // every : 如果所有的函数之中有一个返回值为false,那么every的返回结果即为false, 同时短路; // var arr = [1,2,3,3,4,5,6,67,78,8]; // var res = arr.every( function( item ){ // // 语义 : 是不是所有的数组项都大于100; // console.log(1); // return item > 100 ; // }) // console.log(res); // reduce : 归并; // 数组里面所有的数据共同参与运算; // reduce( function (){} , 起始值 ); var arr = [1,2,3,4,5,56,6,7,8]; // 返回值是最后一次函数执行的结果; var res = arr.reduce( function( prev , item , index , arr ){ // prev : 第一次执行的时候是起始值 , 其余的时候都是上一次函数的运算结果; // console.log(prev); return prev * item; } , 1); console.log(res);
-
find()
find() 方法返回第一个符合条件的数组元素的值。 var a = [4, 9, 16, 25, 29]; var b = a.find(res=>{ return res>9 }); console.log(b) //16