JS数组常用方法
-
toString
-
返回一个字符串,表示指定的数组及其元素
-
语法:arr.toString()
-
<script> const arr = [3, 7, 5, 8, 1, 0, 5] console.log(arr.toString())//3,7,5,8,1,0,5 </script>
-
-
join
-
将一个数组或一个类数组对象的所有元素按自己的设定连接成一个字符串并返回这个字符串
-
语法:arr.join([separator])
-
<script> const arr = [3, 7, 5, 8, 1, 0, 5] console.log(arr.join('-'))//3-7-5-8-1-0-5 </script>
-
-
push
-
将一个或多个元素添加到数组的末尾,并返回该数组的新长度。
-
语法:arr.push(element1, ..., elementN)
-
<script> const arr = [3, 7, 5, 8, 1, 0, 5] console.log(arr.push(0))//8 console.log(arr)//[3, 7, 5, 8, 1, 0, 5, 0] </script>
-
-
pop
-
从数组中删除最后一个元素,并返回该元素的值。此方法更改数组的长度。
-
语法:arr.pop()
-
<script> const arr = [3, 7, 5, 8, 1, 0, 5] console.log(arr.pop())//5 console.log(arr)//[3, 7, 5, 8, 1, 0] </script>
-
-
unshift
-
将一个或多个元素添加到数组的开头,并返回该数组的新长度(该方法修改原有数组)。
-
语法:arr.unshift(element1, ..., elementN)
-
<script> const arr = [3, 7, 5, 8, 1, 0, 5] console.log(arr.unshift(9))//8 console.log(arr)//[9, 3, 7, 5, 8, 1, 0, 5] </script>
-
-
shift
-
从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度。
-
语法:arr.shift()
-
<script> const arr = [3, 7, 5, 8, 1, 0, 5] console.log(arr.shift())//3 console.log(arr)//[7, 5, 8, 1, 0, 5] </script>
-
-
reverse
-
将数组中元素的位置颠倒,并返回该数组。数组的第一个元素会变成最后一个,数组的最后一个元素变成第一个。该方法会改变原数组。
-
语法:arr.reverse()
-
<script> const arr = [3, 7, 5, 8, 1, 0, 5] console.log(arr.reverse())//[5, 0, 1, 8, 5, 7, 3] </script>
-
-
sort
-
用原地算法对数组的元素进行排序,并返回数组。默认排序顺序是在将元素转换为字符串
-
语法:arr.sort([compareFunction])
-
<script> const arr = [3, 7, 5, 8, 1, 0, 5] //升序 console.log(arr.sort((a, b) => a - b))//[0, 1, 3, 5, 5, 7, 8] //降序 console.log(arr.sort((a, b) => b - a))//[8, 7, 5, 5, 3, 1, 0] </script>
-
-
concat
-
用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。
-
语法:var new_array = old_array.concat(value1[, value2[, ...[, valueN]]])
-
<script> const arr = [3, 7, 5, 8, 1, 0, 5] const arr1 = [1, 2, 3] console.log(arr.concat(arr1))//[3, 7, 5, 8, 1, 0, 5, 1, 2, 3] console.log(arr)//[3, 7, 5, 8, 1, 0, 5] </script>
-
-
slice
-
返回一个新的数组对象,这一对象是一个由
begin
和end
决定的原数组的浅拷贝(包括begin
,不包括end
)。原始数组不会被改变。 -
语法:arr.slice([begin[, end]])
-
<script> const arr = [3, 7, 5, 8, 1, 0, 5] console.log(arr.slice(2))//[5, 8, 1, 0, 5] console.log(arr.slice(2, 4))//[5, 8] console.log(arr.slice(1, 5))//[7, 5, 8, 1] </script>
-
-
splice
-
通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组。
-
语法:array.splice(start[, deleteCount[, item1[, item2[, ...]]]])
-
<script> const arr = [3, 7, 5, 8, 1, 0, 5] //插入 console.log(arr.splice(1, 0, '插入'))//[] console.log(arr)//[3, "插入", 7, 5, 8, 1, 0, 5] //删除 console.log(arr.splice(3, 2))//[5, 8] console.log(arr)//[3, "插入", 7, 1, 0, 5] //替换 console.log(arr.splice(5, 1, '替换'))//[] console.log(arr)//[3, "插入", 7, 1, 0, "替换"] </script>
-
-
indexOf
-
返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。
-
语法:arr.indexOf(searchElement[, fromIndex])
-
<script> const arr = [3, 7, 5, 8, 1, 0, 5] console.log(arr.indexOf(5))//2 </script>
-
-
lastIndexOf
-
返回指定元素(也即有效的 JavaScript 值或变量)在数组中的最后一个的索引,如果不存在则返回 -1。从数组的后面向前查找,从
fromIndex
处开始。 -
语法:arr.lastIndexOf(searchElement[, fromIndex])
-
<script> const arr = [3, 7, 5, 8, 1, 0, 5] console.log(arr.lastIndexOf(5))//6 </script>
-
-
filter
-
创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。
-
语法:var newArray = arr.filter(callback(element[, index[, array]])[, thisArg])
-
<script> const arr = [3, 7, 5, 8, 1, 0, 5] console.log(arr.filter((item) => item > 2))//[3, 7, 5, 8, 5] </script>
-
-
map
-
创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。
-
语法:var new_array = arr.map(function callback(currentValue[, index[, array]]) { // Return element for new_array }[, thisArg])
-
<script> const arr = [3, 7, 5, 8, 1, 0, 5] console.log(arr.map((item) => item * 2))//[6, 14, 10, 16, 2, 0, 10] </script>
-
-
forEach
-
对数组的每个元素执行一次给定的函数。
-
语法:arr.forEach(callback(currentValue [, index [, array]])[, thisArg])
-
<script> const arr = [3, 7, 5, 8, 1, 0, 5] arr.forEach(item => { console.log(item)//3 7 5 8 1 0 5 }) </script>
-
-
reduce
-
对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值。
-
语法:arr.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue])
-
<script> const arr = [3, 7, 5, 8, 1, 0, 5] const reducer = (accumulator, currentValue) => accumulator + currentValue console.log(arr.reduce(reducer)) </script>
-
-
some
-
测试数组中是不是至少有1个元素通过了被提供的函数测试。它返回的是一个Boolean类型的值。
-
语法:arr.some(callback(element[, index[, array]])[, thisArg])
-
<script> const arr = [3, 7, 5, 8, 1, 0, 5] const even = (item) => item % 2 === 0 console.log(arr.some(even)) </script>
-
-
Array.isArray()
-
用于确定传递的值是否是一个Array
-
Array.isArray([1,2,3])
-