数组方法里push、pop、shift、unshift、join、splice分别是什么作用?用 splice函数分别实现push、pop、shift、unshift方法
- 栈方法(push\pop)
ECMAScript数组可以通过栈方法表现的类似于栈的数据结构LIFO,其中push和pop都发生在栈的顶部。** push方法可以接受任意数量的参数并按顺序添加至数组尾部,并返回修改后的数组长度; pop方法从数组尾部删除最后一项,并减少数组的length值,并返回删除的值。
- 队列放法(shift\unshift)
队列的数据结构访问规则是FIFO,shift方法可以删除队首项并返回该项,队列长度减一;UNshift方法可以在队列前添加任意项,并返回新数组的长度。
- join
将数组元素通过给定的参数作为连接符连接成一个字符串,而且不会修改原数组的内容
- splice
splice方法可以对数组进行删除、插入、替换的操作。splice方法都会返回一个数组,该数组包含了从原始数组中删除的项,如果没有删除任何项则会返回一个空数组
//push方法
var color = ["red", "black", "blue"];
color.splice(color.length, 0, "yellow")
console.log(color.push) // ["red", "black", "blue", "yellow"]
//pop方法
var color = ["red", "black", "blue"];
color.splice(color.length-1,1)
console.log(color) // ["red", "black"]
//shift方法
var color = ["red", "black", "blue"];
color.splice(0,1)
console.log(color) // ["black", "blue"]
//unshift方法
var color = ["red", "black", "blue"];
color.splice(0,0,"yellow")
console.log(color) // ["yellow", "red", "black", "blue"]
写一个函数,操作数组,数组中的每一项变为原来的平方,在原数组上操作
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]
console.log(squareArr(arr)) // [4, 16, 36]
写一个函数,操作数组,返回一个新数组,新数组中只包含正数,原数组不变
function filterPositive(arr){
return arr.filter(function(element){
return element>0 && typeof element=='number';
})
}
var arr = [3, -1, 2, '饥人谷', true]
var newArr = filterPositive(arr)
console.log(newArr) //[3, 2]
console.log(arr) //[3, -1, 2, '饥人谷', true]
网友评论