js数组学习(ES6+)

文章目录

        • js(ES6+)数组学习
          • 1.Array.prototype.forEach(fn)
          • 2.Array.prototype.map(fn)
          • 3.Array.prototype.filter(fn)
          • 4.Array.prototype.reduce(fn)
          • 5.Array.prototype.some(fn) every
          • 6.Array.prototype.find(fn)
          • 7.Array.prototype.includes(item)

js(ES6+)数组学习

1.Array.prototype.forEach(fn)

遍历数组,传一个函数,每次遍历会运行该函数


const arr = [45, 7, 2, 4, 1, 57, 3]// for (const item of arr) {
//     console.log(item);
// }// arr.forEach(function(item){
//     console.log(item);
// });//遍历时函数里其实有三个参数,需要的时候,可以把数据下标和数组本身
arr.forEach(function(item,index,arr){console.log(item,index,arr);
});
2.Array.prototype.map(fn)

数组映射,传入一个函数,映射数组中的每一项,不会改动原数组,然后返回一个新的数组!

const arr = [45, 7, 2, 4, 1, 57, 3]//数组每一项翻倍
const newArr = arr.map(function(item){return item*2;
});
console.log(newArr)//随意用,比如返回一个对象
const newArr1 = arr.map(function(item){return{n : item,doubleN : item*2};
});console.log(newArr1,'newArr1')
3.Array.prototype.filter(fn)

数组筛选,传入一个函数,仅保留满足条件的项。不会改变原数组,然后返回一个新数组!

const arr = [45, 7, 2, 4, 1, 57, 3]
//返回 和原数组一样的内容
const newArr = arr.filter(function (item){return true;
});//返回新数组是个空数组,false把每一项都排除掉了
const newArr1 = arr.filter(function (item){return false;
});//返回奇数数组
const newArr2 = arr.filter(function (item){return item % 2 !== 0;
});
console.log(newArr2)
4.Array.prototype.reduce(fn)

数组聚合,传入一个函数,对数组每一项按照该函数的返回聚合。 数组聚合相对复杂一点,但是多用于求和,简单理解很多项揉成一项就能用reduce。

const arr = [45, 7, 2, 4, 1, 57, 3]const sum = arr.reduce(function(a,b){return a+b;
},0);
console.log(sum,'求和')
/*** 详细分析:* reduce函数里 有两个参数,一个function,第二个默认值0。到底是怎么运行的:* reduce一开始在内部开了一个空间,记录一开始的结果(用result代表)就是第二个参数,为0。* 然后function开始运行,把result为0这个结果给第一项a,我们数组arr第一项 45给b,a始终是* 当前的结果,当前结果是0,45给b,返回a+b=45,result就更新为45,这时候又把result=45 传给a,* arr第二个元素7给b,返回 a+b=52,result就更新为52,再次传给a,往复下去。直到b为3,* return a+b,最终结果为119*/
5.Array.prototype.some(fn) every
const arr = [45, 7, 2, 4, 1, 57, 3]
//只要有一个元素满足条件就返回true,否则false
const result = arr.some(function (item) {return item > 50;
});
console.log(result,'结果')//所有元素都要满足条件返回true,否则false
const result1 = arr.every(function (item) {return item > 0;
});
console.log(result1,'结果1')
6.Array.prototype.find(fn)

传入一个函数,找到数组中第一个能通过改函数测试的项
返回满足条件的元素,但是有两个元素满足条件时候,返回的还是第一个元素,怎么解决。用filter就行。

const arr = [45, 7, 2, 4, 1, 57, 3,54]
const result = arr.find(function(item){return item > 50;
});
console.log(result)
7.Array.prototype.includes(item)

判断数组中是否存在item,判定规则使用的是Object.is。传的不是函数了,传的是元素。//object.is({},{}) object.is(1,1),object.is理解为===

const arr = [45, 7, 2, 4, 1, 57, 3,54]
const result = arr.includes(2)
console.log(result)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/39177.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

kube-prometheus 系列3 使用 blackbox-exporter 进行 icmp 和 http 监控

安装kube-prometheus 后默认在monitoring namespace中有创建 blackbox-exporter deployment。但默认没有icmp的module配置,无法执行ping探测。因为即使有icmp module,默认配置也是无法执行ping探测的(这篇文章要解决的就是这个问题&#xff0…

CentOS 7 下 Keepalived + Nginx 实现双机高可用

CentOS 7 下 Keepalived Nginx 实现双机高可用 文章目录 CentOS 7 下 Keepalived Nginx 实现双机高可用服务器准备服务信息服务架构 服务安装nginxKeepalived 服务配置nginxKeepalived 启动服务nginxkeepalived 服务验证查看 VIP 状态CURL 命令访问浏览器访问 高可用验证停止…

146. LRU 缓存

题目描述 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否…

vue+springboot 前后端分离 上传文件处理后再下载,并且传递参数

vue代码 <template><div><input type"file" ref"fileInput" accept".json"/><el-button click"upload">上传</el-button></div> </template><script> export default {name: "…

【第二阶段】kotlin的lambda学习

匿名函数lambdm表达式 1.两数相加 fun main() {//匿名函数lambda表达式//两数相加 等价&#xff1a;val addResult:(Int,Int)->String{a,b->"两数相加结果&#xff1a;${ab}"}val addResult{a:Int,b:Int->"两数相加结果${ab}"}println(addResul…

Stable Diffusion WebUI 从零基础到入门

本文主要介绍Stable Diffusion WebUI的实际操作方法&#xff0c;涵盖prompt推导、lora模型、vae模型和controlNet应用等内容&#xff0c;并给出了可操作的文生图、图生图实战示例。适合对Stable Diffusion感兴趣&#xff0c;但又对Stable Diffusion WebUI使用感到困惑的同学&am…

CSS变形与动画(二):perspctive透视效果 与 preserve-3d 3d效果(奥运五环例子)

文章目录 perspective 3d透视效果preserve-3d 3d嵌套效果例子 奥运五环 backface-visibility 背面效果 perspective 3d透视效果 perspective 指定了观察者与 z0 平面的距离&#xff0c;使具有三维位置变换的元素产生透视效果。z>0 的三维元素比正常大&#xff0c;而 z<0 …

试岗第一天问题

1、公司的一个项目拉下来 &#xff0c;npm i 不管用显示 后面百度 使用了一个方法 虽然解决 但是在增加别的依赖不行&#xff0c;后面发现是node版本过高&#xff0c;更换node版本解决。 2、使用插件动态的使数字从0到100&#xff08;vue-animate-number插件&#xff09; 第一…

ChatGPT or BingChat

你相信我们对大模型也存在「迷信权威」吗&#xff1f; ChatGPT 的 GPT-4 名声在外&#xff0c;我们就不自觉地更相信它&#xff0c;优先使用它。但我用 ChatALL 比较 AI 大模型们这么久&#xff0c;得到的结论是&#xff1a; ChatGPT GPT-4 在大多数情况下确实是最强&#xf…

插入、希尔、归并、快速排序(java实现)

目录 插入排序 希尔排序 归并排序 快速排序 插入排序 排序原理&#xff1a; 1.把所有元素分为两组&#xff0c;第一组是有序已经排好的&#xff0c;第二组是乱序未排序。 2.将未排序一组的第一个元素作为插入元素&#xff0c;倒序与有序组比较。 3.在有序组中找到比插入…

Linux 内核内存管理 page_address 函数

文章目录 一、page_address1.1 page_address1.2 page_to_pfn1.3 PFN_PHYS1.4 __va(x)1.5 总结1.6 page_to_virt 二、使用demo 一、page_address 1.1 page_address 内核用 struct page 结构体来表示系统中的每个物理页面&#xff0c;该结构体用来跟踪和管理这些物理页面的使用…

MySQL面试题一

MySQL 索引使用有哪些注意事项呢&#xff1f; 可以从两个维度回答这个问题&#xff1a; 索引哪些情况会失效&#xff0c;索引不适合哪些场景 索引哪些情况会失效 查询条件包含or&#xff0c;会导致索引失效。隐式类型转换&#xff0c;会导致索引失效&#xff0c; 例如age字…

Idea的基本使用带案例---详细易懂

一.idea是什么 有专业人士说&#xff0c;idea是天生适合做微软&#xff0c;当时我还想肯定是夸大其词了&#xff0c;但当你用起来的时候确实很爽&#xff0c;&#x1f60a;&#x1f60a; ntelliJ IDEA是一种集成开发环境&#xff08;IDE&#xff09;&#xff0c;由JetBrains开发…

后仿知识总结

基本词语的概念&#xff1a; &#xff08;1&#xff09;Place&Routing pr&#xff0c;布局布线 sdf基础概念&#xff1a; 静态时序分析圣经翻译计划——附录B&#xff1a;SDF&#xff08;上&#xff09; - 知乎 (zhihu.com) 静态时序分析圣经翻译计划——附录B&#x…

继承和多态C++

这里写目录标题 继承public、protected、private 修饰类的成员public、protected、private 指定继承方式改变访问权限 C继承时的名字遮蔽问题基类成员函数和派生类成员函数不构成重载C基类和派生类的构造函数构造函数的调用顺序基类构造函数调用规则 C基类和派生类的析构函数C多…

MTK Android隐藏NavigationBar

安卓MTK屏蔽NavigationBar, 在SDK中通过搜索关键字修改&#xff0c;可适用大部分MTK及安卓版本&#xff0e; 方法介绍 搜索device/mediatek与device/mediateksample下的.xml把config_showNavigationBar值置为false 如下为搜索指令 find device/mediatek -name “*.xml” | xa…

系统架构师---开发方法---敏捷开发

目录 前言 极限编程 四大价值观 沟通 简单 反馈 勇气 尊重&#xff1a; 十二个最佳实践 计划游戏 小型发布 隐喻 简单设计 测试先行 重构 结对编程 集体代码所所有制 持续集成 每周工作40小时 现场客户 编码标准 前言 2001年2月&#xff0c;在美国的犹他州…

Grafana展示k8s中pod的jvm监控面板/actuator/prometheus

场景 为保障java服务正常运行&#xff0c;对服务的jvm进行监控&#xff0c;通过使用actuator组件监控jvm情况&#xff0c;使用prometheus对数据进行采集&#xff0c;并在Grafana展现。 基于k8s场景 prometheus数据收集 配置service的lable&#xff0c;便于prometheus使用labl…

LVS负载均衡集群

目录 集群 什么是集群 (含义) 集群的分类 LVS 负载均衡器的集群架构 负载均衡器的群集工作模式 LVS负载均衡器的调度算法 LVS组成作用 组成 作用 LVS群集创建与管理 创建步骤 ipvsadm工具 LVS-NAT部署实战 1、部署共享存储 2、配置节点服务器&#xff08;后端服…

JetPack Compose 学习笔记(持续整理中...)

1.为什么要学&#xff1f; 1.命令式和声明式 UI大战,个人认为命令式UI自定义程度较高,能更深入到性能,内存优化方面,而申明式UI 是现在主流的设计,比如React,React Native,Flutter,Swift UI等等,现在性能也逐渐在变得更好 2.还有一个原因compose 是KMM 是完整跨平台的UI基础 3.…