JavaScript数组常用方法包括什么,基本的使用是怎样
Admin 2022-07-06 群英技术资讯 352 次浏览
数组方法有太多了,本文记录一些本人容易记错的一些数组方法,用于巩固及复习。
后续会慢慢的将其他数组方法添加进来。
善用数组方法可以使数据处理变的优雅且简单。
那下面让我们开始吧:
描述:
filter()
方法创建一个新数组,并将符合条件的所有元素添加到创建的新数组中。
语法:
Array.filter(callback(element, index, array) { // 函数体 }, thisValue)
参数:
callback
与thisValue
:
| 参数 | 是否可选 | 描述 |
---|---|---|---|
参数一 | callback | 必选 | 用来测试数组的每个元素的函数。返回 true 表示该元素通过测试,保留该元素,false 则不保留。它接收三个参数。 |
参数二 | thisValue | 可选 | 执行 callback 时,用于 this 的值。 对象作为该执行回调时使用,传递给函数。 如果省略了 thisValue ,"this" 的值为 "undefined" |
callback的参数列表:
| 参数 | 是否可选 | 描述 |
---|---|---|---|
参数一 | element | 必选 | 当前元素 |
参数二 | index | 可选 | 当前元素的索引值 |
参数三 | array | 可选 | 调用了 filter 的数组本身 |
thisValue的参数:
执行 callback
时,用于 this
的值。
返回值:
是一个由 filter()
参数一函数的返回值组成的新数组
示例:
let users = [ {id: 11, name: "孙悟空"}, {id: 21, name: "猪八戒"}, {id: 31, name: "沙和尚"} ]; // 返回前两个用户的数组 let filterUsers = users.filter(item => item.id < 31); console.log(filterUsers.length); // 2
描述:
map()
方法创建一个新数组,新数组的每个元素是调用一次给定函数的返回值。
语法:
Array.map(callback(currentValue, index, array) { // 函数体 }, thisValue)
参数:
callback
与thisValue
| 参数 | 是否可选 | 描述 |
---|---|---|---|
参数一 | callback | 必选 | 数组中的每个元素都要运行的回调函数。它接收三个参数。 |
参数二 | thisValue | 可选 | 执行 callback 时,用于 this 的值。 对象作为该执行回调时使用,传递给函数。 如果省略了 thisValue ,"this" 的值为 "undefined" |
callback的参数列表:
| 参数 | 是否可选 | 描述 |
---|---|---|---|
参数一 | element | 必选 | 当前元素 |
参数二 | index | 可选 | 当前元素的索引值 |
参数三 | array | 可选 | 调用了 filter 的数组本身 |
thisValue的参数:
执行 callback
时,用于 this
的值。
返回值:
是一个由原数组每个元素执行回调函数的结果组成的新数组。
示例:
let number = [1, 2, 3].map(item => item + 1); console.log(lengths); // 2, 3, 4
描述:
map()
方法在原数组上进行修改更改元素的顺序
注:默认排序顺序是在将元素转换为字符串,然后比较它们的UTF-16代码单元值序列时
语法:
Array.sort( compareFunction )
参数:
compareFunction
| 参数 | 是否可选 | 描述 |
---|---|---|---|
参数一 | compareFunction | 可选 | 规定排列顺序的函数。如果省略,元素按照转换为的字符串的各个字符的Unicode位点进行排序。 |
compareFunction的参数列表:
| 参数 | 是否可选 | 描述 |
---|---|---|---|
参数一 | firstEl | 必选 | 第一个用于比较的元素。 |
参数二 | secondEl | 必选 | 第二个用于比较的元素。 |
compareFunction返回值
返回一个说明这两个值顺序的数字
返回值:
返回值为排序后的数组,但是返回值通常会被忽略,因为修改了原数组。
示例:
let number = [1, 2, 3].map(item => item + 1); console.log(lengths); // 2, 3, 4
描述:
reduce()
方法为数组中的每一个元素依次执行(升序执行)回调函数,不包括数组中被删除或从未被赋值的元素。将其结果计算为一个值。
注:reduce() 可以作为一个高阶函数,用于函数的 compose。
语法:
Array.reduce(callback(accumulator, currentValue, index, array), initialValue)
参数:
callback
与initialValue
| 参数 | 是否可选 | 描述 |
---|---|---|---|
参数一 | callback | 必选 | 执行数组中每个数组元素的函数 (如果没有initialValue初始值那么第一个值不会执行改函数)它接收四个参数。 |
参数二 | initialValue | 可选 | callback函数的初始值 |
callback的参数列表:
| 参数 | 是否可选 | 描述 |
---|---|---|---|
参数一 | accumulator | 必选 | 累计器累计回调的返回值; 它是上一次调用回调时返回的累积值,或initialValue。 |
参数二 | currentValue | 必选 | 当前元素 |
参数三 | index | 可选 | 当前元素的索引值 |
参数四 | array | 可选 | 调用了 reduce() 的数组本身 |
initialValue的参数:
作为第一次调用 callback
函数时的第一个参数的值。 如果没有提供初始值,则将使用数组中的第一个元素作为初始值。 在没有初始值的空数组上调用 reduce
将报错。
返回值:
函数累计处理后的结果
执行完所有callback
函数的accumulator
参数
注: 我们的 reducer 函数的返回值分配给累计器,该返回值在数组的每个迭代中被记住,并最后成为最终的单个结果值。
示例:
let number = [1, 2, 3, 4]; let result = number.reduce((sum, current) => sum + current, 0); console.log(result); // 10
描述:
reduce() 方法为数组中的每一个元素依次执行(升序执行)回调函数,不包括数组中被删除或从未被赋值的元素。将其结果计算为一个值。
注:reduce() 可以作为一个高阶函数,用于函数的 compose。
语法:
Array.forEach(callback(currentValue , index , array), thisValue)
参数:
callback
与thisValue
| 参数 | 是否可选 | 描述 |
---|---|---|---|
参数一 | callback | 必选 | 执行数组中每个数组元素的函数,它接收三个参数。 |
参数二 | thisValue | 可选 | 执行 callback 时,用于 this 的值。 对象作为该执行回调时使用,传递给函数。 如果省略了 thisValue ,"this" 的值为 "undefined" |
callback的参数列表:
| 参数 | 是否可选 | 描述 |
---|---|---|---|
参数一 | currentValue | 必选 | 当前元素 |
参数二 | index | 可选 | 当前元素的索引值 |
参数三 | array | 可选 | 调用了 forEach() 的数组本身 |
thisValue的参数:
执行 callback
时,用于 this
的值。
返回值:
该方法没有返回值。
示例:
let number = [1, 2, 3, 4]; number.forEach((item, index ,array) =>{ console.log(item); // 1/2/3/4 });
方法属性:
方法 | 改变原数组 | 返回值描述 | 描述 |
---|---|---|---|
filter() | 否 | 过滤后的新数组 | 过滤器 |
map() | 否 | 循环后的新数组 | 循环 |
sort() | 是 | 为排序后的数组 | 排序 |
reduce() | 否 | 为函数累计处理后的结果 | 累加器 |
forEach() | 是 | 没有返回值为undefined | 循环 |
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了如何实现无感刷新token,当token过期的时候,刷新token,前端需要做到无感刷新token,即刷token时要做到用户无感知,避免频繁登录。下面我们大家一起进入文章看看实现思路即详细内容,需要的朋友可以参考一下
ajax和websocket有哪些不同?对于ajax和websocket的区别,一些朋友比较好奇,其中两者在本质、生命周期、适用范围、发起人和用法这五方面都有区别,接下来我们详细的了解看看。
本篇文章带大家了解一下Node.js中的模块路径解析,介绍一下Node.js模块路径解析方法,希望对大家有所帮助!
进度条效果是我们在前端开发中经常会遇到的需求,进度条效果我们能应用在音乐播放,视频播放等等。那么这种效果我们要如何实现呢?下面小编就和大家分享用原生JavaScript实现进度条的原理、步骤以及代码。
我们学习了JS 之后,能够用JS实现很多有意思的炫酷效果。这篇文章就给大家分享一个模拟电灯开关的小案例,生活中,我们用手一按就可以让电灯亮起和熄灭,下面我们来看看如何用JS实现点灯开关效果。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008