原生js 数组方法

最近看到很多面试题都涉及到了数组的方法,今天就简单总结一下

1,数组本身的方法:

  <script>
    var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
    // 1. arr.join() 把数组转化为字符串 join("写字符之间的连接符号")
    console.log(arr.join("-"));

    // 2. arr.push() 在数组末尾处添加元素 返回修改后的数组长度
    console.log(arr.push(10));// 10
    console.log(arr);//[1, 2, 3, 4, 5, 6, 7, 8, 9,10]

    // 3. arr.pop() 移除数组的最后一项 返回移除的值
    console.log(arr.pop());//10
    console.log(arr.length);//9

    // 4. arr.shift()删除数组的第一项 并返回删除的值

    // 5.arr.unshift() 在数组第一项添加元素 并返回数组的长度 arr.length

    // 6. arr.sort()将数组的项从小到大排序 改变原数组
    var newArr = [2,3,6,4,5,1]
    console.log(newArr.sort());//[1, 2, 3, 4, 5, 6]
    console.log(newArr);//[1, 2, 3, 4, 5, 6]
    
    // 7.  arr.reverse() 翻转数组 改变原数组
    // console.log(arr.reverse());
    
    //8.concat() 在数组的末尾添加元素
    console.log(arr.concat(10,11,12));//[9, 8, 7, 6, 5, 4, 3, 2, 1, 10, 11, 12]
    
    //9.slice截取数组元素  
           // arr.slice(start,end) 不改变原数组
        // 2是从第二个开始截取 不包括2 -3是截取到倒数第三个
        var newArr = arr.slice(2,-3)
        console.log(newArr);
    // 10.splice截取 插入 替换
        // splice 改变原数组
        var Arr = arr.splice(0,1)
        console.log(Arr);
        console.log(arr)

        // 向数组插入元素 
        // 9从第九项插入 0是删除0个 10是插入的数据
        arr.splice(9,0,10)
        console.log(arr);

        // 替换数组元素 
        // 0是从第一个开始替换 2是替换掉前两个元素 2是替换为2
        arr.splice(0,2,2)
        console.log(arr + '-----------')
    // 11.arr.indexOf()接收两个参数:要查找的项和(可选的)表示查找起点位置的索引  返回的是索引号 没有返回 -1
    console.log(arr.indexOf(4,0));//3
    console.log(arr.indexOf(3,3));//-1
    
    // 12. arr.forEach() 对数组进行遍历循环 参数是函数 没有返回值
    // console.log(arr.forEach()); 报错
    arr.forEach(function(x,index){
        console.log(x +'|' + index);
    })

    // 13. arr.some()判断数组中是否存在满足条件的项,只要有一项满足就返回true
    var Arr = [1,2,3,4,5];
    var arr2 = arr.some(function(x){
        return x<3;
    });
    console.log(arr2);//true
    var arr3 = arr.some(function(x){
        return x < 1;
    })
    console.log(arr3);//false
  </script>

2.用js for循环实现的数组方法

 <script>
 //	数组求和  平均值
      var arr = [1, 2, 3, 4, 5, 6, 7];
      var sum = 0;
      var he = 0;
      for (var i = 0; i < arr.length; i++) {
        sum += arr[i];
      }
      pj = sum / arr.length;
      console.log(sum);
      console.log(pj);
    </script>
    <script>
    //查找数组的最大值
        arr=[1,2,3,4,5,5,6];
        var max = 0;
        for(i=0;i<arr.length;i++){
            // if(arr[i+1] > arr[i]){
            //     max = arr[i+1]
            // }
            if(max < arr[i]){
                max = arr[i]
            }
        }
        console.log(max)
    </script>
	<script>
	//把数组转化为字符串
        var arr = ['red', 'green', 'blue', 'pink'];
        var str = 1;
        var sep = '*';
        for (var i = 0; i < arr.length; i++) {
            str += arr[i] + sep;
            str = str + ''
        }
        arr = ['skyblue']
        console.log(arr)
        // console.log(str);    
        // console.log(typeof(str))
    </script>
<script>
//反转数组
        var arr = [1,2,3,4,5,6,7];
        var newArr = [];
        var j = 0;
        for(var i = 1;i<=arr.length;i++){
            newArr[j] = arr[arr.length-i]
            j++;
        }
        console.log(newArr)
    </script>
        <script>
        //冒泡排序
    var arr = [2,5,3,6,2,8,4,7,1];
    var newArr = [];
    var k =0;
    for(var i = 0; i<arr.length-1;i++){
        for(var j=0;j<=arr.length-i-1;j++){
            if(arr[j] > arr[j+1]){
                var temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j+1] = temp;
            }
        }
        if(newArr.indexOf(arr[i]) === -1){
                    newArr[k] = arr[i]
                    k++;
                }
    }
    console.log(arr)
    console.log(newArr);
    
    </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值