【js30天挑战】第四天:数组操作

news2024/9/25 19:22:39

总结

filter(筛选条件为true的项)

map(你想要输出的东西),进来多少个 出去多少个

sort(),默认可排字母顺序。sort(compareFn(a, b))其中compareFn(a, b)返回的值若大于0则a在b的后面。

reduce(),最复杂。reduce(func(){上一轮计算出的结果值,当前值},初值)

console.table()可以将对象数组以表格形式列出来。

//1. filter
  const eighty = people.filter(person=>
    (person.bornYear>=1980 && person.bornYear<1989))
    //会筛选true的条件

  console.table(eighty);//new

//2. map 进来多少个 出去多少个
  const mapRes = people.map(person=>
    // 这样写不对,因为map里面是你的新数组里想要什么东西,而不是操作
    // delete person.location
    // delete person.bornYear
    // delete person.pastedYear
    `${person.firstName} ${person.lastName}`
  )
  console.log(mapRes);

//3. sort
//逻辑是compareFn(a, b)返回的值若大于0则a在b的后面。
const ordered = people.sort((a,b)=>{
    if(a.bornYear>b.bornYear){
        return 1 
    }else{return -1}
})

//简洁写法
const order2 = people.sort((a,b)=>{
    return a.bornYear- b.bornYear
})
const order3 = people.sort((a,b)=>a.bornYear > b.bornYear ? -1 : 1)
console.table(order3);

// 4. reduce 
//有点mapreduce里面reduce的意思
//题目:计算这些人一共活了多少岁
//const sumWithInitial = array1.reduce(
//     (accumulator, currentValue) => accumulator + currentValue,
//   initialValue
// );

const totalYear = people.reduce((all,person)=>{
    return all+=person.pastedYear-person.bornYear
},0)
console.log(totalYear);

//5. 按生命长度排序
const orderLived = people.sort((a,b)=>{
    const aLive = a.pastedYear-a.bornYear;
    const bLive = b.pastedYear-b.bornYear;
    if(aLive>bLive){
        return 1
    }else{return -1}
})
console.table(orderLived)

//6. filter复习:筛选含有b字母的单词
footer = ['About', 'Blog', 'Careers', 'Advertise with us', 'Product help', 'Report an issue', 'MDN Community', 'MDN Forum', 'MDN Chat', 'Web Technologies', 'Learn Web Development', 'MDN Plus', 'Hacks Blog']
footer2 = footer.filter(foot=>foot.includes('b'))
console.log(footer2);

//7. 按字母表顺序排序人名
//按名排序
const alpha = names.sort()
console.log(alpha);
//按姓氏排序
const alpha2 = names.sort((a,b)=>{
    const [a1,a2] = a.split(' ')
    const [b1,b2] = b.split(' ');
    return a2>b2?1:-1;
})
console.log(alpha2);


//8. reduce练习:统计个数
const animals = ['cat', 'dog', 'cat', 'elephant', 'lion', 'dog', 'tiger', 'elephant', 'panda', 'cat', 'panda', 'lion', 'tiger', 'dog', 'elephant', 'lion', 'panda', 'cat', 'tiger', 'panda'];
const count = animals.reduce((obj,item)=>{
    if(!obj[item]){
        obj[item]=0
    }
    obj[item]++
    return obj;
},{})
console.log(count);

在这里插入图片描述

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

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

相关文章

Vue 3 + vite技术架引入静态文件的问题(require和import方式)

Vue 3 vite技术架无法使用require()的方式引入静态文件 使用Vue 3 vite技术架开发过程中&#xff0c;引入静态资源时&#xff0c;习惯性使用require()引入&#xff0c;突然发现报错了。 研究了一下才发现&#xff0c;好像vite引入静态资源或者插件啥的&#xff0c;不用requi…

JAVA 二维码绘制,可定义背景图与在背景图种的位置,码点绘制避开logo区域10个像素点

效果图&#xff1a; 背景图&#xff1a; 直接看代码和代码说明&#xff1a; 方法drawQr() 为绘制核心&#xff0c;仅绘制出图上的二维码 方法createQr() 包含 读取背景图和 调用drawQr() 。绘制出完整的带有背景图的二维码 drawQr()方法参数说明&#xff1a; * param conten…

新星计划【数据结构与算法】赛道开启,欢迎报名!

前排提醒&#xff1a;这里是新星计划2023【数据结构与算法】学习方向的报名入口&#xff0c;一经报名&#xff0c;不可更换。 ↓↓↓报名方式&#xff1a;新星计划2023【数据结构与算法】学习方向报名入口&#xff01;-CSDN社区 一、关于本学习方向导师 博客昵称&#xff1a;…

上海亚商投顾:沪指探底回升微跌 减速器概念股大涨

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 市场情绪 指数今日探底回升&#xff0c;三大股指盘中均跌超1%&#xff0c;随后跌幅逐渐收窄&#xff0c;沪指午后一度拉升翻…

Elasticsearch:使用 SIMD 指令加速向量搜索

作者&#xff1a;Chris Hegarty, Elastic Principal Engineer, Lucene PMC 翻译&#xff1a;杰瑞朱 多年来&#xff0c;Java 平台上运行的代码一直受益于自动向量化 —— HotSpot C2 编译器中的 superword 优化&#xff0c;将多个标量操作打包到 SIMD&#xff08;单指令多数据…

CWDM粗波分复用和DWDM密集波分复用的区别?

WDM波分复用技术提供了一种经济高效的解决方案&#xff0c;无需在现有光纤网络中部署额外的光纤即可增加网络容量。 CWDM 和 DWDM 是两种主要的 WDM 技术&#xff0c;具有不同的波长模式、功能、成本和应用。 CWDM 代表粗波分复用&#xff0c;其中“Coarse” 是指通道之间的波…

分享一个内网的屏幕分享软件inletexemc

分享一个内网的屏幕分享软件inletexemc 参考文章&#xff1a;https://zhuanlan.zhihu.com/p/25912687 原本采用的一个叫veyon的电子教室管理软件&#xff0c;虽然可以实现这个效果&#xff0c;但是比较笨重&#xff0c;操作也比较繁琐&#xff0c;具体可参考&#xff1a;http…

对话商越苗峰:未来十年,采购数字化是ERP后最核心应用之一

“从创立开始&#xff0c;商越就非常清楚要做什么、不做什么&#xff0c;这个定位到现在没变&#xff0c;未来也不会变。” 作者|皮爷 出品|产业家 清晰、理智、坚定、条律分明&#xff0c;这是商越创始人苗峰给我的第一感觉。 在见到他之前&#xff0c;我曾想象过这家短短几…

来酷智生活,Type-C十二合一扩展坞来了

联想最新推出的“来酷智生活Type-C十二合一扩展坞”为用户带来更多接口选择&#xff0c;方便实用。 这款扩展坞包含12个接口&#xff0c;包括2个USB 3.2&#xff0c;2个USB 2.&#xff0c;2个HDMI接口&#xff0c;TF卡插槽&#xff0c;SD卡插槽&#xff0c;DP接口&#xff0c;P…

电压放大器在超声波检测中的应用

电压放大器是一种用于放大电压信号的电子设备&#xff0c;它具有低噪声、高增益、线性度高等特点&#xff0c;被广泛应用于各种电子设备中。在超声波检测中&#xff0c;电压放大器在信号的采集和处理中发挥着非常重要的作用。 超声波检测是一种通过声波的反射和传播来检测物体内…

系统定制开发-安卓输入法将应用顶起问题

输入法弹出会导致应用窗口往上移动 InputMethodService.java中有关窗口重置代码 只需要重写onComputeInsets,将outInsets.contentTopInsets 设为decor.getHeight() Overridepublic void onComputeInsets(final InputMethodService.Insets outInsets) {super.onComputeInsets(o…

6.2 文件与目录管理

6.2.1 文件与目录的检视&#xff1a; ls 在Linux中&#xff0c;ls指令最常被执行&#xff0c;因为我们随时都要知道文件或者目录的相关信息。Linux的文件记录信息很多&#xff0c;因此ls没有需要全部都列出来。所以下达ls时&#xff0c;默认的有&#xff1a;非隐藏文件的文件名…

电脑开机太慢!怎么让电脑开机速度变快?

电脑刚买来的时候&#xff0c;开机速度很快&#xff0c;用了一段时间后&#xff0c;开机速度越来越慢&#xff0c;甚至要等上好几分钟&#xff0c;这实在是太让人苦恼了!电脑开机太慢&#xff0c;怎么让电脑开机速度变快&#xff1f;其实想要解决这个问题很简单&#xff0c;我们…

centos安装docker后,ping不能服务器ip

工作中碰的问题&#xff0c;记录下解决过程&#xff1a; 问题描述 2台内网服务器&#xff1a;A&#xff08;172.20.72.77&#xff09;和B&#xff08;172.17.3.222&#xff09;&#xff0c;在A服务上ping B 。 安装 docker之前是可以ping通&#xff0c;安装docker之后确ping不…

周鸿祎考上了清华博士

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 绝大多数人在功成名就后&#xff0c;想做的事&#xff1a;盖一所希望小学、去学校当老师或者当学生。而周鸿祎选择了去清华读博士。 360的老板周鸿祎&#xff0c;在他53岁的时候考上了清华博士&…

【虚拟机】电脑里面VirtualBox虚拟机不见了

非常突然&#xff0c;打开VirtualBox时&#xff0c;发现工具栏里面之前创建的虚拟机都不见了&#xff0c;自己又没有删&#xff0c;咋回事呢&#xff0c;有些慌&#xff0c;之前的撸力全没有了&#x1f47f;。。。之前有关注过存储文件路径&#xff0c;去找了一下发现*.vdi和*.…

多模态超省钱!JinaChat 面向开发者的大模型服务

2023年6月25日 Jina AI 发布了 JinaChat&#xff0c;一个面向开发者和终端用户的多模态大模型API。传统大型语言模型往往将竞争力建立在「参数多」和「刷分强」的基础上&#xff0c;然而对于应用开发者来说&#xff0c;传统模型商的 API 并不能很好地让开发者低成本的实现解决方…

记录spring boot引入JWT遇到的问题---突然自己展现登录页面

才用了两天的swagger&#xff0c;本来一切如常&#xff0c;焦头烂额写个带token的登录&#xff0c;终于写好了&#xff0c;准备验证一把&#xff0c;就发现swagger莫名其妙自己出现登录界面了&#xff0c;也不知道账号密码&#xff0c;慌得一批 1. 现象说明 试了自己写的登录账…

centos7下部署python

1.在liunx上安装python运行环境 [rootlocalhost ~]# yum -y install gcc[rootlocalhost ~]# yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel2.进入到安…

HQChart使用教程30-K线图如何对接第3方数据38-通达信指标K线数据

HQChart使用教程30-K线图如何对接第3方数据38-通达信指标K线数据 指标内K线数据协议名称协议日志截图请求字段说明ExplainRequestData KLineDataTimeRange 返回json数据结构日K线分钟K线 HQChart代码地址交流 指标内K线数据 通达信指标计算过程中会用到K线数据&#xff0c;一般…