Array

數(shù)組方法里push、pop、shift、unshift、join、splice分別是什么作用?

push

  • 參數(shù):不限個數(shù)
  • 將每個參數(shù)插入到數(shù)組的末尾
  • 返回值為添加元素后數(shù)組的長度
  • 例如
var arr = [1,2,3,4]
cosnole.log(arr.push(5))  //5
console.log(arr)  //[1,2,3,4]

pop

  • 無傳入?yún)?shù)
  • 在指定數(shù)組的末尾刪除一個元素
  • 返回值為指定數(shù)組后數(shù)組的長度
  • 例如
var arr = [1,2,3,4]
console.log(arr.push()) //4
console.log(arr) //[1,2,3]

unshift

  • 參數(shù):不限個數(shù)
  • 將每個參數(shù)插入到數(shù)組的首部
  • 返回值為添加元素后數(shù)組的長度
  • 例如
var arr = [1,2,3,4]
console.log(arr.unshift(-1,0)) //6
console.log(arr)  //[-1,0,1,2,3,4]

shift

  • 無傳入?yún)?shù)
  • 在指定數(shù)組的頭部刪除一個元素
  • 返回值為取出的元素
  • 例如
var =[1,2,3,4]
console.log(arr.shift()) //1
console.log(arr)  //[2,3,4]

join

  • 傳入一個字符串:將數(shù)組轉(zhuǎn)成字符串輸出,元素與元素之間插入輸入的字符串
  • 如果不傳入字符串,默認以','分隔
  • 返回值為一個字符串
  • 例如
var arr = [1,2,3,4,5]
var str = arr.join(',')
console.log(str) //1,2,3,4,5
str = arr.join('');
console.log(str) //12345
str = arr.join('balabala')
console.log(str) //1balabala2balabala3balabala4balabala5

splice
這個方法比較神奇,可以稱之為終極神器

  • 他有兩個功能,刪除和刪除
  • 插入:arr.splice(index,0,insertEl)
  • index為要插入元素的索引,insertEl為要插入的元素,不限個數(shù)
  • 返回值是一個空數(shù)組
  • 例如
var arr = [1,2,3,4,5]
console.log(arr.splice(1,0,x,y,z))  //[]
console.log(arr) //[0,1,x,y,z,2,3,4,5]
  • 刪除:arr.splice(index,n)
  • index為從哪里開始刪除,n為刪除元素的個數(shù)
  • 返回值是刪除的數(shù)組
  • 例如
var arr = [1,2,3,4,5]
console.log(arr.splice(0,3)) //[1,2,3]
console.log(arr) //[4,5]
  • 我們還可以一邊刪除一邊插入
var arr = [1,2,3,4,5]
console.log(arr.splice(0,3,'x','y','z')) //[1,2,3]
console.log(arr)  //['x','y','z',4,5]

用 splice函數(shù)分別實現(xiàn)push、pop、shift、unshift方法

function push (arr){
    for(var i=1;i<arguments.length;i++){
        arr.splice(arr.length,0,arguments[i])
    }
    return arr.length
}
var arr = [1,2,3,4]
console.log(push(arr,5,6,7))  //7
console.log(arr)  //[1,2,3,4,5,6,7]
function pop (arr){
    var last = arr[arr.length-1]
    arr[arr.length-1] = undefined
    arr.length --
    return last
}
var arr = [1,2,3,4]
console.log(pop(arr)) //4
console.log(arr) //[1,2,3]
console.log('--------------')
function unshift(arr){
    for(var i=arguments.length-1;i>0;i--){
        arr.splice(0,0,arguments[i])    
    }
    return void(0)
}
var arr = [1,2,3,4]
console.log(unshift(arr,-1,0)) //6
console.log(arr)  //[-1,0,1,2,3,4]
function shift (arr){
    var head = arr.splice(0,1).toString()
    return head
}
console.log(shift(arr)) //1
console.log(arr)  //[2,3,4]

寫一個函數(shù),操作數(shù)組,數(shù)組中的每一項變?yōu)樵瓉淼钠椒?,在原?shù)組上操作

function squareArr(arr){
    for(var i=0;i<arr.length;i++){
        arr[i]=Math.pow(arr[i],2)
    }
    return arr;
}
var arr = [2, 4, 6]
squareArr(arr)
console.log(arr) // [4, 16, 36]

寫一個函數(shù),操作數(shù)組,返回一個新數(shù)組,新數(shù)組中只包含正數(shù),原數(shù)組不變

function filterPositive(arr){
    var newArr=[];
    for(var i=0;i<arr.length;i++){
        if(typeof arr[i] === 'number'){
            if(arr[i]>0){
                newArr.push(arr[i])
            }
        }
    }
    return newArr
}
var arr = [3, -1,  2,  '饑人谷', true]
var newArr = filterPositive(arr)
console.log(newArr) //[3, 2]
console.log(arr) //[3, -1,  2,  '饑人谷', true]
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容