js Array方法
2023-12-24 17:53:59
Array(数组,引用数据类型):
- ?js数组是可以自动调节大小的,一个数组中可以包含不同的数据类型。
- js数组必须用非负整数作为索引访问,不能使用字符串作索引,数组索引是从0开始。并要求使用 "[ ]" 来访问。
- js数组复制操作时浅拷贝,即复制数组地址的引用。(js对象的复制都是浅拷贝)
注意:在复制数组时要判断是否要修改数组元素,如果要修改数组元素的话,最好是使用数组深拷贝处理,复制数组的原始值。
Array方法:????????
(1)不会修改原有数组
- concat():用于连接两个或者多个数组。
var arr1 = [1,2] var arr2 = [3,4] var arrConcat = arr1.concat(arr2);// [ 1, 2, 3, 4 ] var arr2Concat = arr2.concat(arr1);// [ 3, 4, 1, 2 ]
- join():返回一个字符串,join方法会把所有数组元素使用 join() 传入的字符连接起来。
var arr = [1, 2, 3, 4, 5]; console.log(arr.join('*'));// 1*2*3*4*5
- filter():过滤出符合要求的元素,返回所有符合要求的所有元素数组。?
var arr = [1,2,3,4]; var arrfilter = arr.filter((element)=>{ return element > 2; }) console.log(arrfilter);// [ 3, 4 ]
- ?slice():输入start(开始位置)和end(结束位置),返回这两个位置之间的元素数组。
- 如果只有一个参数,就返回这个位置之后的所有元素数组。
- 如果参数为负数,表示从最后一个位置,向前多少个位置。
const animals = ['ant', 'bison', 'camel', 'duck', 'elephant']; console.log(animals.slice(2));// ["camel", "duck", "elephant"] console.log(animals.slice(2, 4));// ["camel", "duck"] console.log(animals.slice(-2));// ["duck", "elephant"] console.log(animals.slice(2, -1));// ["camel", "duck"] console.log(animals.slice());// ["ant", "bison", "camel", "duck", "elephant"]
- map():返回一个新数组,新数组的元素是原始数组通过回调函数处理之后返回的值。
const arr = [1, 2, 3, 4, 5]; let arr1 = arr.map((element) => { return element + 10; }); console.log(arr1);// [ 11, 12, 13, 14, 15 ]
- forEach():用于遍历数组的每一个元素,并把元素传递给回调函数。
const arr = [1, 2, 3, 4, 5]; arr.forEach((element) => { console.log(element); }); // 1 // 2 // 3 // 4 // 5
- reduce():对数组中的每个元素按照顺序执行传入的回调函数,每一次的执行结果作为下一次执行的参数传入,返回最后执行结果。
// 使用语法 reduce(callbackFn) reduce(callbackFn, initialValue) // 具体操作 var arr = [1, 2, 3, 4, 5]; console.log(arr.reduce((accumulator, currentValue) => accumulator + currentValue, 0));// 15 console.log(arr.reduce((accumulator, currentValue) => accumulator + currentValue));// 15 // 参数解释 //accumulator: 上一次调用 callbackFn 的结果 //currentValue:当前元素的值 //initialValue:初始化的值
- find():返回数组中满足条件的第一个元素的值,没有就返回undefined。
const arr = [5, 12, 8, 130, 44]; const found = arr.find((element) => element < 100); console.log(found);// 5 const found1 = arr.find((element) => element > 100); console.log(found1);// 130
- findIndex():返回数组中满足条件的第一个元素的索引,没有就返回-1。
const arr = [5, 12, 8, 130, 44]; const found = arr.findIndex((element) => element < 100); console.log(found);// 0 const found1 = arr.findIndex((element) => element > 100); console.log(found1);// 3
- indexOf():返回数组中第一次出现给定元素的下标,如果不存在则返回 -1。
// 使用语法 indexOf(searchElement) indexOf(searchElement, fromIndex) // 具体操作 const beasts = ['ant', 'bison', 'camel', 'duck', 'bison']; console.log(beasts.indexOf('bison'));// 1 console.log(beasts.indexOf('bison', 2));// 4
- lastIndexOf():返回数组中给定元素最后一次出现的索引,如果不存在则返回 -1。该方法从fromIndex位置开始向前搜索数组。
// 使用语法 lastIndexOf(searchElement) lastIndexOf(searchElement, fromIndex) //具体操作 const animals = ['Dodo', 'Tiger', 'Penguin', 'Dodo']; console.log(animals.lastIndexOf('Dodo'));// 3 console.log(animals.lastIndexOf('Dodo',2));// 0
- flat():扁平化数组。按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。
var arr = [1, 2, [3, [4, [5]]]]; var arrflat = arr.flat(); console.log(arrflat); // [ 1, 2, 3, [ 4, [ 5 ] ] ] var arrflatForNum = arr.flat(3); console.log(arrflatForNum); //[ 1, 2, 3, 4, 5 ]
- flatMap():对数组中的每一个元素使用给定的回调函数,返回时将结果展开一级,返回展开后的新元素。
const arr1 = [1, [1, [1]], [1], 1]; const result = arr1.flatMap((num) => (num === 1 ? [1, 1] : 3)); console.log(result);// [ 1, 1, 3, 3, 1, 1 ]
(2)会修改原有数组
- pop():返回值为数组被删除的最后一位元素。
var arr = [1, 2, 3]; var del = arr.pop(); console.log(arr); // [1, 2]
- push():返回值为新数组的长度。
var arr = [1, 2, 3]; var newlen = arr.push(4, 5); console.log(arr);//[ 1, 2, 3, 4, 5 ] console.log(newlen);// 5
- shift():返回被删除的元素,删除数组中的第一位元素
var arr = ["a","b", "c"]; var del = arr.shift(); console.log(arr); // ['b', "c"] console.log(del); // a
- unshift():返回新数组的长度,在数组的第一位添加单个或者多个元素。
var arr = ["c", "d"]; var newlen = arr.unshift("a", "b"); console.log(arr); //[ 'a', 'b', 'c', 'd' ] console.log(newlen); // 4
- sort():返回排序好的数组,传入回调函数,按照回调函数给数组元素排序。
var arr = [9, 8, 3, 6, 2, 0]; arr.sort((a,b)=>{ return a-b; }) console.log(arr);// [0, 2, 3, 6, 8, 9]
- reverse():返回翻转后的数组。
var arr = [1, 2, 3, 4, 5, 6]; arr.reverse(); console.log(arr);//[ 6, 5, 4, 3, 2, 1 ]
- fill():返回一个新数组,用一个固定值填充一个数组中从起始索引(默认为?
0
)到终止索引(默认为?array.length
)内的全部元素。// 使用语法 fill(value) fill(value, start) fill(value, start, end) // 具体操作 const arr = [1, 2, 3, 4]; console.log(arr.fill(0, 2, 4));// [1, 2, 0, 0] console.log(arr.fill(5, 1));// [1, 5, 5, 5] console.log(arr.fill(6));// [6, 6, 6, 6]
- splice():返回值为包含了删除的元素的数组。通过移除或者替换已存在的元素或添加新元素,改变一个数组的内容。
// 使用语法 splice(start) splice(start, deleteCount) splice(start, deleteCount, item1) splice(start, deleteCount, item1, item2, itemN) // 具体操作 const months = ['Jan', 'March', 'April', 'June']; console.log(months.splice(1, 0, 'Feb'));// [] console.log(months);// ["Jan", "Feb", "March", "April", "June"] console.log(months.splice(4, 1, 'May'));// ["June"]
文章来源:https://blog.csdn.net/bu_xiang_tutou/article/details/135178394
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!