目录
操作数组基本的方法
push
push():向数组的末尾添加一个或更多元素,并返回新的长度
// 数组 let arr = [1, 2, 3, 4, 5] let arrlength = arr.push(6) console.log(arr) //结果 arr===> [1,2,3,4,5,6] console.log( arrlength ) // 结果 length ===> 6
pop
pop():删除并返回数组的最后一个元素
// 数组 let arr = [1, 2, 3, 4, 5] let num = arr.pop() console.log(arr) //结果 arr===> [1,2,3,4,5,6] console.log(num) //结果 num===> 5 console.log(arr.length) //结果 length===> 4
shift
shift():删除并返回数组的第一个元素
// 数组 let arr = [1, 2, 3, 4, 5] let num = arr.shift() console.log(arr) //结果 arr===> [ 2, 3, 4, 5 ] console.log(num) //结果 num===> 1 console.log(arr.length) //结果 length===> 4
unshift
unshift():向数组的开头添加一个或更多元素,并返回新的长度。
// 数组 let arr = [1, 2, 3, 4, 5] let arrlength = arr.unshift(6) console.log(arr) //结果 arr===> [ 6, 1, 2, 3, 4, 5 ] console.log( arrlength ) // 结果 length ===> 6
splice
splice():删除元素,并向数组添加新元素
语法:
数组对象.splice(index,howmany,item1,.....,itemX)
参数 描述 index 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。 howmany 必需。要删除的项目数量。如果设置为 0,则不会删除项目。
item1, itemX 可选。向数组添加的新项目。 返回值:
实例:
// 插入数据 let arr = [1, 2, 3, 4, 5] let arrresult = arr.splice(2, 0, '我是被新放进来的数据') console.log(arr) //结果 arr ===> [ 1, 2, '我是被新放进来的数据', 3, 4, 5 ] console.log(arr.length) //结果 length ===> 6 console.log(arrresult) // 返回的值 arrlength ===> []
// 删除数据 let arr = [1, 2, 3, 4, 5] let arrresult = arr.splice(0, 3) console.log(arr) //结果 arr ===> [ 4, 5 ] console.log(arr.length) //结果 length ===> 2 console.log('我是被删除的数据' +arrresult)// 返回的值 arrresult===> 我是被删除的数据1,2,3
splice小拓展
修改:
// 修改数据 let arr = [1, 2, 3, 4, 5] let arrresult = arr.splice(1, 1, '我是被修改的数据哦') console.log(arr) //结果 arr ===> [ 1, '我是被修改的数据哦', 3, 4, 5 ] console.log(arr.length) //结果 length ===> 5
操作数组的高阶用法
reverse
reverse(): 方法用于颠倒数组中元素的顺序。
// 数组 let arr = [1, 2, 3, 4, 5] arr.reverse() console.log(arr) //结果 arr ===> [ 5, 4, 3, 2, 1 ]
注释:该方法会改变原来的数组,而不会创建新的数组。
toString
toString(): 方法可把数组转换为字符串,并返回结果。
// 数组 let arr = [1, 2, 3, 4, 5] let arrstring = arr.toString() console.log(arrstring) //结果 arrstring ===> 1,2,3,4,5
join
join(): 方法用于把数组中的所有元素放入一个字符串。
元素是通过指定的分隔符进行分隔的。
语法:
arrayObject.join(separator)
separator : 可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。
// 数组 let arr = [1, 2, 3, 4, 5] let arrString = arr.join('!') console.log(arrString) //结果 arrString===> 1!2!3!4!5
concat
concat() 方法用于连接两个或多个数组。
该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
语法:
arrayObject.concat(arrayX,arrayX,......,arrayX)
arrayX: 必需。该参数可以是具体的值,也可以是数组对象。可以是任意多个。
实例:
// 数组 let arr = [1, 2, 3, 4, 5] let brr = ['a', 'b', 'c', 'd', 'e'] console.log(arr.concat(brr)) // 结果 [ 1, 2, 3, 4, 5, 'a', 'b', 'c', 'd', 'e']
sort
sort() 方法用于对数组的元素进行排序。
语法:
arrayObject.sort(sortby)
sortby: 可选。规定排序顺序。必须是函数。
// 数组 let arr = [10, 9, 6, 7, 12, 51] let a = arr.sort(function (a, b) { return b - a //从大到小 [ 51, 12, 10, 9, 7, 6 ] return a - b //从小到大 [ 6, 7, 9, 10, 12, 51 ] }) console.log(a)
对数组的每个元素执行一次的方法
forEach
forEach()
方法对数组的每个元素执行一次给定的函数。语法:
arr.forEach(callback(currentValue [, index [, array]])[, thisArg])
callback
为数组中每个元素执行的函数,该函数接收一至三个参数:
currentValue
数组中正在处理的当前元素。
index
可选 数组中正在处理的当前元素的索引。
array
可选forEach()
方法正在操作的数组。
thisArg
可选可选参数。当执行回调函数callback
时,用作this
的值// 数组 let arr = ['a', ' b', 'c'] arr.forEach(function (array, index) { console.log('我是当前的元素:' + array, '我是index索引值:' + index) }) // 结果: // 我是当前的元素:a 我是index索引值:0 // 我是当前的元素:b 我是index索引值:1 // 我是当前的元素:c 我是index索引值:2
注意: forEach()不执行完毕不会停止,也不会被retrun停止
注意: forEach() 对于空数组是不会执行回调函数的
map
map()
方法创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。语法:
var new_array = arr.map(function callback(currentValue[, index[, array]]) { Return element for new_array }[, thisArg])
可选值和forEach相同
实例:
// 数组 let arr = [1, 2, 3, 4, 5] let arrMap = arr.map(function (array) { return array * 2 // 必须return 返回,否则数组的值为undefined }) console.log(arrMap) // arrMap ===> [ 2, 4, 6, 8, 10 ]
filter
filter(): 方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。
只会接收 true 和 false
返回值(return)为true就会收集当前的数组,为false并不会
官方定义(返回值):
一个新的、由通过测试的元素组成的数组,如果没有任何数组元素通过测试,则返回空数组。
语法:
var newArray = arr.filter(callback(element[, index[, array]])[, thisArg])
实例:
// 数组 let arr = [1, 2, 3, 4, 5] let arrfilter = arr.filter(function (array) { return array > 3 // 必须return 返回,否则数组的值为undefined }) console.log(arrfilter) // arrfilter===> [ 4, 5 ]
注意: filter() 不会对空数组进行检测。
注意: filter() 不会改变原始数组。
find
find() 方法返回通过测试(函数内判断)的数组的第一个元素的值。
find() 方法为数组中的每个元素都调用一次函数执行:
- 当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。
- 如果没有符合条件的元素返回 undefined
语法:
arr.find(callback[, thisArg]) // 和foreach 语法相同
实例:
// 数组 let arr = [1, 2, 3, 'c', 5, 6] let arrfind = arr.find(function (array) { return array > 4 // 获取大于四的值 只收集第一个为true的元素 }) console.log(arrfind ) // arrfind ===> 5 (只收集第一个,他的值是第一个为true的值)
注意: find() 对于空数组,函数是不会执行的。
注意: find() 并没有改变数组的原始值。
findIndex
findIndex() 方法返回传入一个测试条件(函数)符合条件的数组第一个元素位置。
findIndex() 方法为数组中的每个元素都调用一次函数执行:
- 当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数。
- 如果没有符合条件的元素返回 -1
语法:
arr.findIndex(callback[, thisArg]) // 和foreach 参数相同
实例:
// 数组 let arr = [1, 2, 3, 'c', 5, 6] let arrfindIndex = arr.findIndex(function (array) { return array > 4 // 获取大于四的值,只收集第一个为true元素的索引值 }) console.log(arrfindIndex) // arrfindIndex ===> 4 (只收集第一个,他的值是第一个为true元素的索引值)
注意: findIndex() 对于空数组,函数是不会执行的。
注意: findIndex() 并没有改变数组的原始值。
some
some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。
some() 方法会依次执行数组的每个元素:
- 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
- 如果没有满足条件的元素,则返回false。
语法:
array.some(function(currentValue,index,arr),thisValue) //和foreach参数相同
实例:
// 数组 let arr = [1, 2, 3, 4, 5] let arrsome = arr.some(function (array) { console.log(array) // 输出结果 1 2 3 4 // 当 4 > 3 时他已经接收到了一个true,他就不会继续向下执行 return array > 3 }) console.log(arrsome) // arrsome ===> true
注意: some() 不会对空数组进行检测。
注意: some() 不会改变原始数组。
every
every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。
every() 方法使用指定函数检测数组中的所有元素:
- 如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
- 如果所有元素都满足条件,则返回 true。
语法:
array.every(function(currentValue,index,arr),thisValue)//和foreach参数相同
实例:
// 数组 let arr = [1, 2, 3, 4, 5] let arrevery = arr.every(function (array) { console.log(array) // 1 因为第一个值就是false,所以就不会向下执行了 return array > 3 }) console.log(arrevery) // arrevery ===> false
注意: every() 不会对空数组进行检测。
注意: every() 不会改变原始数组。