数组方法总结(改变原数据和不改变)

1,157 阅读2分钟

改变原数组:

unshift:向数组开头添加元素

push: 向数组末尾添加元素,并返回新的长度

unshift:向数组开头添加元素,并返回新的长度

shift: 将第一个元素删除并且返回删除元素

reverse:颠倒数组顺序

sort:对数组排序

splice:splice(start,length,item)删,增,替换数组元素,返回被删除数组,无删除则不返回

不改变原数组:

concat:连接多个数组,返回新的数组

join:将数组中所有元素以参数作为分隔符放入一个字符

slice:slice(start,end),返回选定元素

some:检测数组中的元素是否满足指定条件,返回true或false 如果有一个元素满足条件,表达式返回true,剩余的元素不会再执行检测。 如果没有满足条件的元素,返回false。

every(callback): 依据判断条件,数组的元素是否全满足,若满足则返回ture

filter:创建一个新数组,某数组中符合指定条件的所有元素,不会改变原始数组

var ages = [32, 33, 16, 40];
function checkAdult(age) {
    return age >= 18;
}
function myFunction() {
   document.getElementById("demo").innerHTML = ages.filter(checkAdult);   //32,33,40
}

map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。

forEach 和 map 的相同点与区别

相同点

1、只能遍历数组

2、都支持三个参数,item,index,arr(愿数组)

3、匿名函数中的this都是指向window

区别

1、map()会分配内存空间存储新数组并返回,forEach()不会返回数据

2、forEach()允许callback更改原始数组的元素。map()返回新的数组。

splice和slice的区别

1、splice(start,length,”a”) 删除/添加元素,splice() 方法会直接对数组进行修改。从start开始删length个(包括start),并将”a”插入到i处。

2、slice(start,end) 从某个已有的数组返回选定的元素,从start位开始返回到end(包括start不包括end)如果是负数,表示从数组尾部进行计算(同样:包括start不包括end),请注意,该方法并不会修改数组,而是返回一个子数组。