上一篇文章中写了 map、foEach、filter 三种方法也属于数组的方法。
另外常用的方法整理:
some
判断数组是否至少有一个满足条件,一旦找到一个就立即停止并返回true,否则false,不会改变原素组。
let arr=[-1,0,3];
let result=arr.some(function(item){
result item > 0; //只要有符合条件的即为true
})
console.log(result); true
还有一个经常类似用途的方法includes。
includes
查找数组中是否存在某个满足条件的,若存在返回true,不存在即返回false。
let arr=[1,2,3,4];
console.log(arr.includes(2)); //true
console.log(arr.includes(5)); // false
还有一个查找是否满足条件的,判断数组是否所有元素都满足条件,是就返回true,否则返回false。
every()
let arr=[1,2,3,4,5,6];
console.log( arr.every((item)=>item % 2 == 0));//false
console.log( arr.every((item)=>item > 0));//true
console.log( arr.every((item)=>item > 2 ));//false
这四个放在一起写 在数组前添加unshift,在数组后添加 push,删除数组前的元素shift, 删除数组后的元素pop。
unshift
在数组前面添加一个或多个元素,并返回新数组
let arr=[-1,0,3];
arr.unshift(4);
console.log(arr); //4,-1,0,3
push
在数组最后添加一个或多个元素,并返回新数组。
let arr=[-1,0,3];
arr.push(4);
console.log(arr); //-1,0,3,4
shift
删除数组最前一个元素,并返回数组前面删除元素。
let arr=[1,2,3];
let arr2 = arr.shift();
console.log(arr); //[2,3]
console.log(arr2); //1
pop
删除数组最后一个元素,并返回数组末尾删除元素。
let arr=[1,2,3];
let arr2 = arr.pop();
console.log(arr); //[1,2]
console.log(arr2); //3
reverse
反转数组 (其实都懒得写这个。。。)。
let arr=[1,2,3]
arr.reverse();
console.log(arr); //[3, 2, 1]
sort
排序
let arr=[1,5,2,8,0]
arr.sort((a,b) =>a-b) //升序
console.log("升序", arr); //升序 [0, 1, 2, 5, 8]
arr.sort((a,b) =>b-a); //降序
console.log("降序", arr); //降序 [8, 5, 2, 1, 0]
concat
let arr1=["a","b","c"];
let arr2=[2,3,4];
let arr3=arr1.concat(arr2);
console.log(arr3); // ["a","b","c",2,3,4]
indexOf
查找数组元素首次在数组中出现的索引,没找到返回-1。
let arr=["a","b","c","a"];
console.log(arr.indexOf("b")); //1
console.log(arr.indexOf("d")); //-1 不存在
console.log(arr.indexOf("a")); //0 首次出现的位置
lastIndexOf
查找数组元素最后一次在数组中出现的索引,没找到返回-1。
var arr = [1,2,3,6,2,6,3,8,6];
console.log(arr.lastIndexOf(7))//-1 不存在
console.log(arr.lastIndexOf(6))//8
join 、split
字符串转数组,数组转字符串。
let arr=[ 'h', 'a', 'ppy' ];
let result=arr.join("");
console.log(result); // happy
let str="happy";
let result=str.split("");
console.log(result); //[ 'h','a','p','p','y' ]
set
NAN、undefine、null都会被去重
注:正常情况下,NaN === NaN 返回的是false,但是在set里可以去重。
let arr=[1,2,3,3,4,4,5,'5',,,];
let s=new Set(arr);
console.log(s); //set {1, 2, 3, 4, 5, '5',undefined,}
slice
剪切当前数组,并返回一个包含剪切值的新数组,不会改变原数组
let arr = [6, 4, 5, 3, 2, 7, 8, 1]
console.log(arr.slice()) //[6, 4, 5, 3, 2, 7, 8, 1]
console.log(arr.slice(5)) //[ 7, 8, 1 ]
console.log(arr.slice(-4)) //[ 2, 7, 8, 1 ]
console.log(arr.slice(-2)) //[ 8, 1 ]
console.log(arr.slice(2, 5)) //[ 5, 3, 2 ]
console.log(arr.slice(5, 2)) //[]
console.log(arr.slice(2, -2)) //[ 5, 3, 2, 7 ]
常用的就这些 就先整理到这!