不改变原数组

您所在的位置:网站首页 不会改变原数组的数组方法 不改变原数组

不改变原数组

#不改变原数组| 来源: 网络整理| 查看: 265

改变原数组的方法 push()

push() 方法向数组的 末尾添加 一个或多个元素,并返回新的长度

var arr = ['a','b','c']; console.log( arr.push('d')) //push()以后,返回的数组的长度就是4 console.log(arr) //push以后,arr=['a','b','c','d'] pop()

pop() 方法 删除数组 的 最后一个 元素并返回删除的元素

var arr = ['a','b','c']; console.log(arr.pop()); // 删除最后一个元素c console.log(arr) // 删除最后一个元素c后,返回剩下的元素['a','b'] shift()

shift() 方法 删除 并返回数组的第一个 元素

var arr = ['a','b','c']; console.log(arr.shift()) // a console.log(arr) // ['b','c'] unshift()

unshift() 方法向数组的 开头 添加一个或多个 元素,并返回新的长度

var arr = ['a','b','c']; console.log(arr.unshift('aaa')); // 删除最后一个元素aaa console.log(arr) // 添加后的数组为 ['aaa','a','b','c'] splice()

splice() 方法用于向数组中 插入、删除或替换 数组里的元素

var arr = ['a','b','c']; console.log(arr.splice(1,0)) //从下标1开始删除0个元素,返回的是个空数组 // console.log(arr.splice(1,1)) // 从下标1开始删除一个元素,返回的是删除的元素 b // console.log(arr.splice(1,0,'hello','world')) // 从下标1开始删除0个元素,添加2个新的元素,返回的是['a', 'hello', 'world', 'b', 'c'] reverse()

reverse() 方法用于反转数组的元素排序,例如:

var arr = ['a','b','c']; arr.reverse(); // 通过reverse()将数组元素反转 console.log(arr) // ['c', 'b', 'a'] sort()

sort() 方法对数组的元素进行 排序,排序顺序可以是字母或数字,升序或降序;默认按 字母升序 排列

数字升序排列, a-b , 生序排列,如下: var arr = [10,2,66,8,16]; arr.sort(function(a,b){return a-b}); console.log(arr) // 返回 [2, 8, 10, 16, 66] 数字降序排列, b-a , 降序排列,如下: var arr = [10,2,66,8,16]; arr.sort(function(a,b){return b-a}); console.log(arr) // 返回 [66, 16, 10, 8, 2] 默认字母升序排列,如下: var arr = ['red','green','blue','orange']; arr.sort(); console.log(arr) // ['blue', 'green', 'orange', 'red'] 字母降序排列,如下: var arr = ['red','green','blue','orange']; arr.sort(); // 先默认按字母升序排列 arr.reverse(); // 然后再通过reverse()方法将升序排列的数组里的元素颠倒顺序,变成降序排列 console.log(arr) // 返回 ['red', 'orange', 'green', 'blue'] forEach()

forEach() 方法调用数组的每个元素,并将元素传递给回调函数;对空数组不会执行回调 语法为: array.forEach(function(item,index,arr),thisValue),几个参数的含义如下:

item 为必填项表示当前的元素index 为可选项代表当前元素的索引arr 为可选项代表当前元素所属的数组对象thisValue为可选项,传递给函数的值一般用 "this"值。 如果这个参数为空,"undefined"会传递给 "this" 值 例如: var array= ['a','b','c']; array.forEach(function(item,index,arr) { console.log(item,index,arr) })

打印输出如下: 在这里插入图片描述

不改变原数组的方法 filter()

filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。它不会对空数组进行检测 语法: array.filter(function(item,index,arr),thisValue),几个参数的含义如下:

item 为必填项表示当前的元素index 为可选项代表当前元素的索引arr 为可选项代表当前元素所属的数组对象thisValue为可选项,对象作为该执行回调时使用,传递给函数,用作 ‘this’ 的值,如果省略了thisValue,‘this’的值为 ‘undefined’ 例如: let array = [11,22,33,44,55,66]; let newArray = array.filter((item,index,arr) => { //item: 当前的元素值 index当前值的索引 arr当前的数组 return item > 22; }) console.log(newArray) // 返回 [33, 44, 55, 66] 返回值是一个符合条件的新数组 concat()

concat() 方法连接于连接两个或多个数组,并返回结果; 该方法没有改变现有的数组,但是会返回连接两个或多个数组链接的副本 语法: array1.concat(array2,array3,...,arrayX)

var arr1 = [1,2,3]; var arr2 = [4,5,6]; console.log(arr1.concat(arr2)); // 输出[1,2,3,4,5,6] slice()

slice() 方法 选取数组的一部分,并返回一个新数组 该方法不会改变元素数组,而是将截取到的元素封装到一个新数组中返回 语法: array.slice(start,end),参数的介绍如下:

start: 截取开始的位置的索引,包含开始索引end: 截取结束的位置的索引,不包含结束索引;也可以省略不写,若省略会截取从开始索引往后的所有元素索引值可以传递负值,传递负值就从后往前计算 -1代表倒数第一个 -2代表倒数第二个 var arr = ['aa','bb','cc','dd','ee','ff']; console.log(arr.slice(1,4)); // 返回 ['bb','cc','dd'] join()

join() 方法通过指定的 分隔符 将数组中的元素进行分割并转换成一个字符串

var arr = ['aa','bb','cc','dd','ee','ff']; var newArr = arr.join('-'); console.log(newArr) // 返回 aa-bb-cc-dd-ee-ff map()

map() 方法通过指定函数处理数组的每个元素,并返回处理后的数组 map() 方法,按照原数组的顺序依次处理元素;不会对空数组进行检测 语法: array.map(function(item,index,arr),thisValue),各个参数的含义如下:

item: 必填项,当前元素的值index: 可选项,当前元素的索引值arr: 可选项,当前元素属于的数组对象thisValue: 可选项,对象作为该执行回调时使用,传递给函数,用作 "this" 的值。如果省略了 thisValue,或者传入 null、undefined ,那么回调函数的 this为全局对象。 let arr = [1,2,3,4,5]; let newArr = arr.map(function(item,index,arr) { return item + 1 }) console.log(arr,newArr)

打印输入如下: 在这里插入图片描述

every()

every()方法,检测数组元素的 每个元素 是否都符合 条件(通过函数提供),不会对空数组进行检测 如果数组中检测到有一个元素不满足,则整个表达式返回false,且剩余的元素不会再进行检测。 如果所有元素都满足条件,则返回 true。

let arr = [11,22,33,44,55,66]; let newArr = arr.every(function(item,index,array){ return item > 20; }) console.log(newArr) //false some()

some()方法 检测数组元素中是否有元素符合 指定条件(函数提供) some() 方法会依次执行数组的每个元素,some()不会对空数组进行检测。 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。 如果没有满足条件的元素,则返回false。

let arr = [11,22,33,44,55,66]; let newArr = arr.some(function(item,index,array){ return item > 20; }) console.log(newArr) //true indexOf()

indexOf()方法,搜索数组中的元素,并返回它所在的位置 该方法将从头到尾地检索数组,看它是否含有对应的元素 开始检索的位置在数组start处或数组的开头(没有指定 start 参数时) 如果找到一个 item,则返回 item 的第一次出现的位置。开始位置的 索引为0 如果在数组中没找到 指定元素,则返回 -1

var array = ['red','green','blue','green']; var newArray = array.indexOf('green'); console.log(newArray) //1


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3