Array

数组方法里push、pop、shift、unshift、join、splice分别是什么作用?

push

  • 参数:不限个数
  • 将每个参数插入到数组的末尾
  • 返回值为添加元素后数组的长度
  • 例如
var arr = [1,2,3,4]
cosnole.log(arr.push(5))  //5
console.log(arr)  //[1,2,3,4]

pop

  • 无传入参数
  • 在指定数组的末尾删除一个元素
  • 返回值为指定数组后数组的长度
  • 例如
var arr = [1,2,3,4]
console.log(arr.push()) //4
console.log(arr) //[1,2,3]

unshift

  • 参数:不限个数
  • 将每个参数插入到数组的首部
  • 返回值为添加元素后数组的长度
  • 例如
var arr = [1,2,3,4]
console.log(arr.unshift(-1,0)) //6
console.log(arr)  //[-1,0,1,2,3,4]

shift

  • 无传入参数
  • 在指定数组的头部删除一个元素
  • 返回值为取出的元素
  • 例如
var =[1,2,3,4]
console.log(arr.shift()) //1
console.log(arr)  //[2,3,4]

join

  • 传入一个字符串:将数组转成字符串输出,元素与元素之间插入输入的字符串
  • 如果不传入字符串,默认以','分隔
  • 返回值为一个字符串
  • 例如
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为要插入的元素,不限个数
  • 返回值是一个空数组
  • 例如
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为删除元素的个数
  • 返回值是删除的数组
  • 例如
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函数分别实现push、pop、shift、unshift方法

function push (arr){
    for(var i=1;i
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]

写一个函数,操作数组,数组中的每一项变为原来的平方,在原数组上操作

function squareArr(arr){
    for(var i=0;i

写一个函数,操作数组,返回一个新数组,新数组中只包含正数,原数组不变

function filterPositive(arr){
    var newArr=[];
    for(var i=0;i0){
                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]

你可能感兴趣的:(Array)