分三块记忆,一块改变原数组,另一块不会改变原数组,第三块遍历数组
    改变原数组
   
    1、push() ———- 向数组的末尾添加多个元素,并返回新的长度。
   
    let  a =  [1,2];
    let item = a.push(4);  // 3,返回新的长度。
    console.log(a); // [1,2,4]
    2、pop() ———- 删除数组的最后一个元素,并且返回这个元素。
   
    let  a =  [1,2];
    let item = a.pop();  // 2
    console.log(a); // [1]
    3、unshift() ———- 向数组的开头添加多个元素,并返回新的长度。
   
    let  a =  [1,2];
    let item = a.unshift(8);  //输出3 返回新的长度
    console.log(a); // [8,1,2]
    4、shift() ———- 删除数组的第一个元素,并返回这个元素。
   
    let  a =  [1,2];
    let item = a.shift();  //1
    console.log(a); // [2]删除的,返回删除的元素。
添加的,返回数组的长度。
push—添尾 | pop—删尾 | unshift—添头 | shift—删头
    5、sort() ———- 数组排序,并返回这个数组
   
参数可选: 规定排序顺序的比较函数。【深入了解移步另一篇笔记】
没传比较函数,就默认字母升序。
    6、splice() ———- 添加/删除数组元素,返回被删除的项目
   
array.splice(index,number,item1,item2….)
参数:
- index:整数,规定添加/删除项目的位置
- number:要删除的项目数量。如果设置为 0,则不会删除项目
- item1, …: 可选,向数组添加的新项目
let a =[1,2,3,4]
let item = a.splice(0,2,8); // [1,2] 从位置0开始删除2个元素(包括0)
console.log(a); // [8,3,4]  原数组被改变
    7、reverse() ———- 倒序
   
    不改变原数组
   
    1、slice() ———- 选择元素
   
array.slice(begin,end)
let a= [7,6,5,4];
let b=a.slice(0,2); 
console.log(a)  //[7,6,5,4]
console.log(b)  //[7,6]  从位置0开始,取到位置2结束(包头不包尾)
    2、indexOf() ———- 查找数组是否存在某个元素,返回下标
   
找到就返回下标,找不到就返回-1
可用于数组去重
functon unique(arr) {
    let res = []
  	for (let i = 0; i < arr.length; i++)){
        if (res.indexOf(arr[i]) === -1) {
          	res.push(arr[i])
        }
  	}
  	return res
}
unique([1,1,2,2,3,3]) //[1,2,3]
    3、join() ———- 把数组中的所有元素通过指定的分隔符进行分隔放入一个字符串,返回生成的字符串。
   
类型转换
:数组类型转字符串
语法:array.join(str)
参数:
- str 指定要使用的分隔符,默认使用逗号作为分隔符。
    let a= ['hello','world'];
    let str=a.join(); // 'hello,world'
    let str2=a.join('+'); // 'hello+world'
    4、cancat() ———- 用于连接两个或多个数组。
   
    let a = [1, 2, 3];
    let b = [4, 5, 6];
    //连接两个数组
    let newVal=a.concat(b); // [1,2,3,4,5,6]
    遍历数组
   
    1、forEach() ——— 遍历数组
   
forEach
遍历数组,不能使用 break 语句或使用 return 语句中断。语法:array.forEach(function(currentValue, index, arr), thisValue)
参数:
currentValue
:
数组当前遍历的元素,默认从左往右依次获取数组元素。
index:
数组当前元素的索引,第一个元素索引为0,依次类推。
arr:
当前遍历的数组。
let arr = ['a', 'b', 'c', 'd']
arr.forEach((item, index) => {
     console.log(item + '-----' + index);
})
    2、filter () ——— 过滤原始数组,返回新数组
   
语法:new_array = arr.filter(function(currentValue, index, arr), thisArg)
参数:
urrentValue
:
数组当前遍历的元素的值
index:
数组当前元素的索引
arr:
数组本身。
let arr = [7,4,6,9,14]
let result = arr.filter((item, index) => {
     return item>10
})
console.log(result)  //[14]
    数组案例
   
    1、去除数组中指定的值
   
let arr=[0,1,0,2,0,3,0,4,0,5]
//去除数组中的所有的0
function quchu(num){
let newarr =[]
for(let i=0;i<arr.length;i++){
    if(arr[i]!=num){
    newarr.push(arr[i])
    }
}
console.log(newarr)
}
quchu(0) //[1,2,3,4,5]
    2、数组去重
   
let arr=[0,1,0,2,0,3,0,4,0,5]
//数组去重
let newarr =[]
for(let i=0;i<arr.length;i++){
    if(newarr.indexOf(arr[i])==-1){
    newarr.push(arr[i])
    }
}
console.log(newarr)  //[0,1,2,3,4,5]
    3、数组翻转
   
let arr = [1,2,3]
//数组翻转 第一种
let newarr = arr.reverse()
console.log(newarr)
//数组翻转 第二种
let newarr2 = []
for(let i=0;i<arr.length;i++){
    newarr2.unshift(arr[i])
}
console.log(newarr2)
    4、统计数组中出现次数最多的数字,并统计个数
   
思路:利用对象的键值对来存储 每个数的出现次数
let arr=[1,2,2,3,3,3,3,3,8]
//统计每个数字的出现次数
let obj={}   //定义一个对象来存放数字(key)和次数(value)
for (let i=0;i<arr.length;i++){
   var key=arr[i]
   if(obj[key]){
        obj[key]++
    }else{
        obj[key]=1
    }
}
console.log(obj)  // 输出{1: 1, 2: 2, 3: 5, 8: 1}
//接下来,找出value最大的值
let maxcount=0
let maxnum=''
for(let key in obj){
    if(obj[key]>maxcount){
        maxcount=obj[key]
        maxnum=key
    }
}
console.log('最大值是'+maxnum+ ',出现次数为' + maxcount ) //最大值是3,出现次数为5
    5、冒泡排序
   
     
   
let arr=[5,4,3,2,1]
// 将数组从小到大排序 即冒泡排序
for(let i=0;i<arr.length-1;i++){
//外层循环,控制第几位进入比较
    for(let j=0;j<arr.length-1-i;j++){
        //内层循环,控制这一位比较多少轮
        if(arr[j]>arr[j+1]){
            //前一个数比后一个大,就交换位置
            var temp = arr[j]
            arr[j] = arr[j+1]
            arr[j+1]=temp
        }
    }
}
console.log(arr) //[1,2,3,4,5]
    6、查找数组中某个数字出现的位置和次数
   
let arr=[1,2,2,2,3]
function search (num){
    let count=0  //出现次数
    let index=arr.indexOf(num)
    while(index!==-1){
        count++
        console.log('出现位置:'+ (index+1))
        index=arr.indexOf(num,index+1) //indexOf的第二个参数可选,决定从哪里开始查找     
    }
    console.log('出现次数:'+count)
}
search(2) 
