js实现数组方法

69 阅读1分钟

数组方法(能够改变原数组)

push() 
pop() 
unshift() 
shift() 
reverse() 
sort() 
splice()

push

       function push(arr,val){
           arr[arr.length] = val
          return arr
        }
        console.log(push(arr,10));

pop

        // function pop(arr){
        //     var num = arr[arr.length - 1]
        //     // 只删除值
        //     // delete arr[arr.length-1]
        //     // 位置和值都删除
        //     arr.length -= 1
        //     return arr
        // }
        // console.log(pop(arr))

unshift

        // function unshift(arr,val){
        //     var newArr = [val]


        //     for(var i = 0;i < arr.length; i++){
        //         newArr[i+1] = arr[i]
        //     }


        //     return {
        //         arr:newArr,
        //         length:newArr.length
        //     }
        // }


        // console.log(unshift(arr,100));

shift

        // function shift(arr){
        //     var num = arr[0]
        //     delete arr[0]
        //     var newArr = []
        //     for(var i = 0; i < arr.length-1; i++){
        //         newArr[i] = arr[i+1]
        //     }
        //     return newArr
        // }


        // console.log(shift(arr));

reverse

       // function reverse(arr){
        //     for(var i = 0; i < arr.length/2; i++){
        //         var step = arr[i]
        //         arr[i] = arr[arr.length-1-i]
        //         arr[arr.length-1-i] = step
        //     }
        //     return arr
        // }
        // console.log(reverse(arr));

sort

        arr.sort() //只能排0-9
        arr.sort(function(a,b){return a-b}) //从小到大排
        arr.sort(function(a,b){return b-a}) //从大到小排
       

splice

//剪切
//arr.splice(起始位置,剪切个数,新增元素)

var arr = [1,2,3,4,5]
console.log(arr.splice(2,3)); //-> [3,4,5]
console.log(arr); // ->[1,2]

console.log(arr.splice(1,1,10)); // -> [1,10,3,4,5]

for循环和splice去除所有元素

  var arr = [1,2,3,4,5,6,7,8,9,10,11,12]
        for(var i = 0; i < arr.length + i ; i++){
            arr.splice(0,1)
            console.log(arr);
        }
        console.log(arr);