//原数组改变的方法有:push pop shift unshift reverse sort splice
//不改变原数组的方法有:concat map filter join every some indexOf slice forEach
//1.0 filter根据条件去比较,如果是true则保留加到新的数组里面(符合条件的元素并返回一个新的数组),返回false是丢弃不加
var list=["1",'2','3','4']
const strarr=list.filter(item=>item>3)
==> strarr=['4']
//2.0 some根据条件去返回true或者false,其中有一项符合条件则不在向下进行 (返回true或者false)
var list=["1",'2','3','4']
const bon=list.some(item=>item>3)
==> bon=true
//3.0 every根据条件去循环没一项,都符合返回true,其中只要一项不符合返回false
var list=["1",'2','3','4']
const bon=list.every(item=>item>1)
==> bon=false //因为其中一个item===1,不符合条件
//4.0 reduce根据数组中的每个值(从左到右)开始缩减,最终计算为一个值
var list=["1",'2','3','4']
const sum= list.reduce((a,b)=>a+b)
==> sum='1234'
//5.0 concat,合并两个或多个数组,生成一个新的数组。原数组不变
var str1=["1",'2','3','4']
var num1=[1,2,3,4]
const arr=str1.concat(num1)
arr==>['1', '2', '3', '4', 1, 2, 3, 4]
//6.0 join,将数组的每一项用指定字符连接形成一个字符串。默认连接字符为 “,” 逗号。
var str1=["1",'2','3','4']
str1.join("-")
==> '1-2-3-4' 成为一个字符串
//7.0 reverse,将数组倒序。原数组改变
var str1=["1",'2','3','4']
str1.reverse()
==> ['4', '3', '2', '1']
//8.0 sort,对数组元素进行排序。按照字符串UniCode码排序,原数组改变
var list=["1",'2','3','4','6','9','0']
list.sort((a,b)=>a-b) //a-b从小到大
==> ['0', '1', '2', '3', '4', '6', '9']
list.sort((a,b)=>b-a)//b-a从大到小
==> ['9', '6', '4', '3', '2', '1', '0']
//9.0 map,原数组的每一项执行函数后,返回一个新的数组。原数组不变。
var list=["1",'2','3','4','6','9','0']
list.map(item=>item+1)
==> ['11', '21', '31', '41', '61', '91', '01']
//10 slice, 按照条件查找出其中的部分内容,是否改变原数组:不改变
var list=["1",'2','3','4','6','9','0']
//10.1 ==> list.slice(n, m),从索引n开始查找到m处(不包含m)
list.slice(2, 5)
==> ['3', '4', '6'] //索引2-5的值,不包含下标为5的值 ‘9’
//10.2 ==> list.slice(n) 第二个参数省略,则一直查找到末尾
list.slice(2)
==> ['3', '4', '6', '9', '0'] //索引为2和后面所有的值
//10.3 ==> list.slice(0) 原样输出内容,可以实现数组克隆
list.slice(0) //没有引用数据类型则是深拷贝,有的是浅拷贝,拷贝的是引用数据类型的地址
==> ["1",'2','3','4','6','9','0']
// 11splice(index,howmany,arr1,arr2…) ,用于添加或删除数组中的元素。从index位置开始删除howmany个元素,并将arr1、arr2…数据从index位置依次插入。howmany为0时,则不删除元素。
var list=['张三','李四','王五','刘麻子']
list.splice(3) //代表删除3个元素
==> ['刘麻子']
//11.1
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2,1,"Lemon","Kiwi"); //表示从第二个元素开始删除1项,新加后面2项
==> ["Banana","Orange","Lemon","Kiwi","Mango"]
//11.2
fruits.splice(2,0,"Lemon","Kiwi");//表示从第二个元素开始删除0项,新加后面2项
==> ["Banana","Orange","Lemon","Kiwi","Apple","Mango"]
//12 indexOf() 检测当前值在数组中第一次出现的位置索引,找到返回当前下标,找不到返回-1
var list=["1",'2','3','4','6','9','0']
list.indexOf('4')
==> 3
list.indexOf('10')
==> -1
//13 includes()判断一个数组是否包含一个指定的值 返回布尔值
var list=["1",'2','3','4','6','9','0']
list.includes('1')
==> true
list.includes('10')
==> false
//14 find() 找到并返回符合的值,找不到则是undefined
var list=["1",'2','3','4','6','9','0']
list.find(item=>item==='10')
==> undefined
var list=["1",'2','3','4','6','9','0']
list.find(item=>item==='1')
==> '1'
var list=["1",'2','3','4','6','9','0']
list.find(item=>item==='4')
==> '4'
//14.1
if(undefined){
console.log(1)
}else{
console.log(2)
}
==> 2
if(null){
console.log(1)
}else{
console.log(2)
}
==> 2
*****************************************************************************************************
原数组改变的方法有:push pop shift unshift reverse sort splice
不改变原数组的方法有:concat map filter join every some indexOf slice forEach