JavaScript基础第六天

news2024/11/14 22:39:48

JavaScript 基础第六天

今天我们学习数组的遍历,以及数组的其他用法。

1. 数组遍历

1.1. 古老方法

可以使用 for 循环进行遍历。

let arr = ["a", "b", "d", "g"];
for (let i = 0; i < arr.length; i++) {
	console.log(arr[i]);
}

1.2. forEach

forEach的两个参数,

  • item 是当前循环的项。
  • index 是当前下标。
let arr = ["a", "b", "d", "g"];
arr.forEach((item, index) => {
	console.log(`${item}-${index}`);
	item = "c";
});
console.log(arr);

image-20240207212445613

forEach 循环,对原数组没有影响,没有返回值

1.3. map 映射

mapforEach 一样接受一个函数作为参数,但map 有返回值,会返回一个数组,返回数组中的值与接受的函数返回的值相关,并不会改变原来的数组。

let arr = [1, 2, 3, 4, 5];
// double将原数组的每一项,都变成两倍
const double = (arr) =>
	arr.map((item) => {
		return item * 2;
	});
const newArr = double(arr);
console.log(newArr); // [2, 4, 6, 8, 10]
console.log(arr); // 原始数组不变[1, 2, 3, 4, 5]

1.4. some

some 只要数组中有一项满足条件,就输出 true:否则输出 false。

let arr = [1, 2, 3, 4, 5];
const res1 = arr.some((item) => {
	return item > 3;
});
const res2 = arr.some((item) => {
	return item < 0;
});
console.log(res1); //  true
console.log(res2); //  false

1.5. every

every 数组中的每一项都满足条件,返回 true, 否则返回 false。

let arr = [1, 2, 3, 4, 5];
const res1 = arr.every((item) => {
	return item > 0;
});
const res2 = arr.every((item) => {
	return item > 3;
});
console.log(res1); //true
console.log(res2); //false

1.6. findIndex

findIndex 找到符合条件的就返回下标,没有就返回-1。

const arr = [
	1,
	2,
	3,
	{
		name: "钱多多",
	},
];
const index = arr.findIndex((item) => {
	return item.name === "钱多多";
});
console.log(index); //3

1.7. find

find 返回第一个匹配的元素, 如果没有找到,返回 undefined。

const arr = [
	1,
	2,
	3,
	{
		name: "钱多多",
	},
];
const target = arr.find((item) => {
	return item.name === "钱多多";
});
console.log(target);

1.8. filter

filter 过滤返回符合条件的数组,不会改变原数组。

const nums = [1, 2, 3, 4, 5, 6];
const numBig = nums.filter((num) => {
	return num > 3;
});
console.log(numBig); // [4, 5, 6]

2. 数组的其他用法

2.1. 翻转数组 reverse

reverse 翻转数组,会改变原来的数组,也会返回一个新数组,都是翻转之后的。

let arr = ["a", "b", "c"];
const reverseArr = arr.reverse();
console.log(arr); // 输出:["c", "b", "a"]
console.log(reverseArr); // 输出:["c", "b", "a"]

2.2. 数组转字符串 join

join 可以将数组转为字符串,可以传入参数,分隔符。

let arr = ["html", "css", "js"]; // 'html,css,js'
const str1 = arr.join(",");
const str2 = arr.join("/");
console.log(str1); //	html,css,js
console.log(str2); // html/css/js

2.3. 数组排序 sort

sort 会改变原来的数组,也会返回一个新数组,都是排序之后的。

接受一个函数作为参数,函数有返回值, 且有两个参数,返回第一个参数-第二个参数为升序,反之为降序。

let arr = [1, 4, 5, 3, 2];
arr3.sort((a, b) => {
	//升序
	return a - b;
});
console.log(arr); //[1,2,3,4,5]
//降序
const res = arr.sort((a, b) => {
	return b - a;
});
console.log(arr); //[5,4,3,2,1]

2.4. 求和 reduce

reduce(pre,cur)

  • pre 第一个参数是累加器
  • cur 第二个参数是我们最后的返回的结果
let arr1 = [1, 2, 3, 4, 5];
const sum1 = arr1.reduce((pre, cur) => {
	return pre + cur;
}, 0);
console.log(sum1); //15
let arr1 = [1, 2, 3, 4, 5];
const sum1 = arr1.reduce((pre, cur) => {
	return pre + cur;
}, 0);
console.log(sum1); //15

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

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

相关文章

JUnit实践教程——Java的单元测试框架

前言 大家好&#xff0c;我是chowley&#xff0c;最近在学单元测试框架——JUnit&#xff0c;写个博客记录一下&#xff01; 在软件开发中&#xff0c;单元测试是确保代码质量和稳定性的重要手段之一。JUnit作为Java领域最流行的单元测试框架&#xff0c;为开发人员提供了简单…

“bound drug/molecule”or “unbound drug/molecule”、molecule shape、sketching是什么?

“bound drug/molecule”or “unbound drug/molecule” For clarity, the following terms will be used throughout this study: “bound drug/molecule” (or “unbound drug/molecule”) refers to the drug/molecule that is bound (or unbound) to proteins [48]. 意思就是…

【前端web入门第五天】01 结构伪类选择器与伪元素选择器

文章目录: 1.结构伪类选择器 1.1 nth-child(公式) 2.伪元素选择器 1.结构伪类选择器 作用:根据元素的结构关系查找元素。 选择器说明E:first-child查找第一个E元素E:last-child查找最后一个E元素E:nth-child(N)查找第N个E元素&#xff08;第一个元素N值为1) 一个列表结构…

Vue中路由守卫的详细应用

作为一名web前端开发者&#xff0c;我们肯定经常使用Vue框架来构建我们的项目。而在Vue中&#xff0c;路由是非常重要的一部分&#xff0c;它能够实现页面的跳转和导航&#xff0c;提供更好的用户体验。然而&#xff0c;有时我们需要在路由跳转前或跳转后执行一些特定的逻辑&am…

代码随想录Day44 | 完全背包 518 零钱兑换II 377 组合综合IV

代码随想录Day44 | 完全背包 518 零钱兑换II 377 组合综合IV 完全背包52.携带研究材料518.零钱兑换II377.组合总和Ⅳ 完全背包 文档讲解&#xff1a;代码随想录 视频讲解&#xff1a; 状态 物品的个数是无限个&#xff0c;即一个背包里可以存在同种物品。唯一区别就是遍历顺序…

【MySQL进阶之路】BufferPool底层设计(上)

欢迎关注公众号&#xff08;通过文章导读关注&#xff1a;【11来了】&#xff09;&#xff0c;及时收到 AI 前沿项目工具及新技术的推送&#xff01; 在我后台回复 「资料」 可领取编程高频电子书&#xff01; 在我后台回复「面试」可领取硬核面试笔记&#xff01; 文章导读地址…

【快速上手QT】02-学会查看QT自带的手册QT助手

QT助手 为什么大家都说QT简单&#xff0c;第一点就是确实简单&#xff08;bushi&#xff09;。 我个人觉得最关键的点就是人家QT官方就给你准备好了文档&#xff0c;甚至还有专门的IDE——QtCreator&#xff0c;在QTCreator里面还有很多示例代码&#xff0c;只要你会C的语法以…

飞马座卫星

1960年代马歇尔太空飞行中心的历史显然与建造土星五号月球火箭有关。然而&#xff0c;鲜为人知的是该中心在设计科学有效载荷方面的早期工作。 Fairchild 技术人员正在检查扩展的 Pegasus 流星体探测表面。Pegasus 由马里兰州黑格斯敦的 Fairchild Stratos Corporation 通过马歇…

DC-8靶机渗透详细流程

信息收集&#xff1a; 1.存活扫描&#xff1a; arp-scan -I eth0 -l └─# arp-scan -I eth0 -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:dd:ee:6a, IPv4: 192.168.10.129 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.10…

Linux文件和目录管理

目录基础 Linux操作系统以目录的方式来组织和管理系统中的所有文件。所谓的目录&#xff0c;就是将所有文件的说明信息采用树状结构组织起来。每个目录节点之下会有文件和子目录。 所有一切都从 ‘根’ 开始&#xff0c;用 ‘/’ 代表, 并且延伸到子目录。 bin&#xff1a;B…

Python tkinter树状目录窗口实现

通过tkinter GUI实现读取特定目录下所有目录及文件并在窗口中可选择显示。 通过左右布局实现&#xff0c;左侧为树状目录&#xff0c;右侧为输入框和显示文本框。 目录 tkinter树状目录 左侧树状目录 右侧显示 调用实现窗口 打开目录 打开py文件 总结 tkinter树状目录 …

【C++基础入门】七、指针(定义和使用、所占内存空间、空指针和野指针、const关键字修饰指针、指针和数组、指针和函数)

七、指针 7.1 指针的基本概念 指针的作用&#xff1a; 可以通过指针间接访问内存 内存编号是从0开始记录的&#xff0c;一般用十六进制数字表示可以利用指针变量保存地址 7.2 指针变量的定义和使用 指针变量定义语法&#xff1a; 数据类型 * 变量名&#xff1b; 示例&…

Java应用中各类环境变量的优先级及最佳实践

1.引言 Java应用程序的开发和部署过程中&#xff0c;合理利用各类环境变量是关键之一。不同类型的环境变量&#xff0c;如系统环境变量、进程级环境变量、Java启动参数设置的系统属性以及Spring Boot配置文件中的环境变量&#xff0c;它们之间存在优先级差异。 深入理解这些环…

Ansible command命令模块 这个模块可以直接在远程主机上执行命令,并将结果返回本主机。

目录 参数介绍练习环境配置主机清单配置无密码链接ping模块 command 命令模块也可以用来安装点东西看个路径 command 指定目录来 指定命令 参数介绍 chdir    # 在执行命令之前&#xff0c;先切换到该目录 executable # 切换shell来执行命令&#xff0c;需要使用命令的绝对…

leetcode(滑动窗口)483.找到字符中所有字母异位词(C++详细解释)DAY4

文章目录 1.题目示例提示 2.解答思路3.实现代码结果 4.总结 1.题目 给定两个字符串 s 和 p&#xff0c;找到 s 中所有 p 的 异位词 的子串&#xff0c;返回这些子串的起始索引。不考虑答案输出的顺序。 异位词 指由相同字母重排列形成的字符串&#xff08;包括相同的字符串&a…

上市公司人工智能转型指数及55个工具变量汇总数据集(2024.2月更新)

一、“智能化转型”发文趋势和主题分布 二、数据来源 上市公司年报、官网&#xff0c;中国知网及各期刊官网等三、时间跨度 工具变量&#xff1a;2022-2024年&#xff1b; 上市公司人工智能转型指数&#xff1a;2007-2021年四、数据范围 中国A股上市公司五、数据展示 序号…

Qt QVariant类应用

QVariant类 QVariant类本质为C联合(Union)数据类型&#xff0c;它可以保存很多Qt类型的值&#xff0c;包括 QBrush&#xff0c;QColor&#xff0c;QString等等&#xff0c;也能存放Qt的容器类型的值。 QVariant::StringList 是 Qt 定义的一个 QVariant::type 枚举类型的变量&…

【Unity游戏设计】跳一跳Day1

一、创建场景 Assets/Secnes:GameAssets创建游戏资源Prefabs存放预制体,Scripts脚本,Sounds声音,Textures图片资源,Materiais材质资源分类存放意识 二、场景建模 注意&#xff1a;alt鼠标左键切换视角 视角与摄像机视角保持一致&#xff1a;Main CameraGameObjectAlign Vie…

React环境配置

1.安装Node.js Node.js官网&#xff1a;https://nodejs.org/en/ 下载之后按默认选项安装好 重启电脑即可自动完成配置 2.安装React 国内使用 npm 速度很慢&#xff0c;可以使用淘宝定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm。 ①使用 winR 输入 cmd 打开终端 ②依…

【递归】【前序中序后序遍历】【递归调用栈空间与二叉树深度有关】【斐波那契数】Leetcode 94 144 145

【递归】【前序中序后序遍历】【递归调用栈空间与二叉树深度有关】Leetcode 94 144 145 1.前序遍历&#xff08;递归&#xff09; preorder2.中序遍历&#xff08;递归&#xff09;inorder3.后序遍历&#xff08;递归&#xff09;postorder4. 斐波那契数 ---------------&…