首页 > 其他分享 >JS数组方法

JS数组方法

时间:2024-04-09 10:30:40浏览次数:22  
标签:arr console log 元素 JS let 数组 方法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

一、改变数组内容的方法

1、push(): 向数组的末尾添加一个或多个元素,并返回新的长度。

let arr = [1,2,3]
arr.push(4);  // 在数组末尾添加元素 4
console.log(arr); // [1, 2, 3, 4]

2、pop(): 删除并返回数组的最后一个元素。

let arr = [1,2,3]
let lastValue = arr.pop(); // 删除并返回数组最后一个元素
console.log(arr); // 输出 [1,2]
console.log(lastValue); // 输出 3

3、shift(): 删除并返回数组的第一个元素。

let arr = [1,2,3]
let firstValue = arr.shift(); // 删除并返回数组第一个元素
console.log(arr); // 输出 [2, 3]
console.log(firstElement); // 输出 1

4、unshift(): 向数组的开头添加一个或多个元素,并返回新的长度。

let arr = [1, 2, 3];
arr.unshift(0); // 在数组开头添加元素 0
console.log(arr); // 输出 [0, 1, 2, 3]

5、splice(): 通过删除现有元素和/或添加新元素来更改一个数组的内容。

let arr = [1, 2, 3, 4, 5];
let val = arr.splice(2, 1); // 从索引 2 开始,删除 1 个元素
console.log(arr); // 输出 [1, 2, 4, 5]
console.log(val); // 输出 [3]
arr.splice(2, 0, 'a'); // 从索引 2 开始,删除 0 个元素, 并添加 'a'
console.log(arr); // 输出 [1, 2, 'a', 4, 5]

6、sort(): 对数组的元素进行排序。

let arr = [5, 2, 8, 1, 4];
arr.sort(function(a, b) {
  return a - b; // 升序排序
});
console.log(arr); // 输出 [1, 2, 4, 5, 8]

7、reverse():颠倒数组中元素的顺序。

let arr = [1, 2, 3, 4, 5];
arr.reverse(); // 颠倒数组元素顺序
console.log(arr); // 输出 [5, 4, 3, 2, 1]

二、查询数组信息的方法

1、length:返回数组的长度。

let arr = [1, 2, 3];
console.log(arr.length); // 输出 3

2、indexOf(): 返回在数组中可以找到给定元素的第一个索引,如果不存在,则返回-1。

let arr = [1, 2, 3, 2, 1];
let index = arr.indexOf(2); // 查找元素 2 第一次出现的索引
console.log(index); // 输出 1

3、lastIndexOf(): 返回在数组中可以找到给定元素的最后一个索引,如果不存在,则返回-1。

let arr = [1, 2, 3, 2, 1];
let lastIndex = arr.lastIndexOf(2); // 查找元素 2 最后一次出现的索引
console.log(lastIndex); // 输出 3

4、concat(): 用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。

let arr1 = [1, 2, 3];
let arr2 = [4, 5, 6];
let arr3 = arr1.concat(arr2); // 合并两个数组
console.log(arr3); // 输出 [1, 2, 3, 4, 5, 6]

5、slice(): 返回一个新的数组对象,这一对象是一个由开始到结束(不包括结束)选择的、由原数组的浅拷贝构成。原始数组不会被改变。

let arr = [1, 2, 3, 4, 5];
let slicedArr = arr.slice(1, 3); // 从索引 1 到索引 2(不包含 3)的元素
console.log(slicedArr); // 输出 [2, 3]

6、join(): 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。

let arr = [1, 2, 3];
let joinedStr = arr.join('-'); // 用 '-' 连接数组元素
console.log(joinedStr); // 输出 "1-2-3"

三、数组迭代方法

1、forEach():对数组的每个元素执行一次提供的函数。

let arr = [1, 2, 3];
arr.forEach(function(element) {
  console.log(element); // 输出数组每个元素
});
console.log(arr); // 输出数组每个元素

2、map(): 创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后的返回值。

let array = [1, 2, 3, 4, 5];
let newArray = array.map(function(element) {
  return element * 2; // 返回每个元素的两倍
});
console.log(newArray); // 输出 [2, 4, 6, 8, 10]

3、filter(): 创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。

let array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
let newArray = array.filter(function(element) {
  return element % 2 === 0; // 返回所有偶数
});
console.log(newArray); // 输出 [2, 4, 6, 8, 10]

4、some(): 测试数组中是否有某些元素通过由提供的函数实现的测试。

let array = [1, 2, 3, 4, 5];
let hasEven = array.some(function(element) {
  return element % 2 === 0; // 测试是否有偶数
});
console.log(hasEven); // 输出 true

5、every(): 测试数组的所有元素是否都通过由提供的函数实现的测试。

let array = [1, 2, 3, 4, 5];
let areAllPositive = array.every(function(element) {
  return element > 0; // 测试所有元素是否都大于0
});
console.log(areAllPositive); // 输出 true

6、find(): 返回数组中满足提供的测试函数的第一个元素。否则返回 undefined。

let array = [1, 2, 3, 4, 5];
let found = array.find(function(element) {
  return element > 3; // 找到第一个大于3的元素
});
console.log(found); // 输出 4

7、findIndex(): 返回数组中满足提供的测试函数的第一个元素的索引。否则返回 -1。

let array = [1, 2, 3, 4, 5];
let index = array.findIndex(function(element) {
  return element > 3; // 找到第一个大于3的元素的索引
});
console.log(index); // 输出 3

8、reduce(): 对累加器和数组中的每个元素(从左到右)应用一个函数,将其减少为单个输出值。

let array = [1, 2, 3, 4, 5];
let sum = array.reduce(function(accumulator, currentValue) {
  return accumulator + currentValue; // 计算所有元素的总和
}, 0);
console.log(sum); // 输出 15

9、reduceRight(): 同 reduce(),但是从右到左应用函数。

let arr = [1, 2, 3, 4, 5];
let product = arr.reduceRight((accumulator, currentValue) => accumulator * currentValue, 1);
console.log(product); // 输出 120

四、ES6 新增方法

1、includes(): 判断一个数组是否包含一个指定的值,根据情况,如果返回 true,则元素在原数组中的索引值会被返回。

let array = [1, 2, 3, 4, 5];
console.log(array.includes(3)); // 输出: true
console.log(array.includes(6)); // 输出: false
console.log(array.includes(3, 3));  // 输出: false(从索引 3 开始搜索,找不到)

2、flat(): 用于将嵌套的数组“拉平”,变成一维的数组。

lat nestedArray = [1, [2, [3, [4, 5]]]];

// 展开一层
let flattenedOnce = nestedArray.flat();
console.log(flattenedOnce); // 输出: [1, 2, [3, [4, 5]]]

// 完全展开
let flattenedCompletely = nestedArray.flat(Infinity);
console.log(flattenedCompletely); // 输出: [1, 2, 3, [4, 5]]

// 指定深度为 2
let flattenedToDepth2 = nestedArray.flat(2);
console.log(flattenedToDepth2); // 输出: [1, 2, 3, 4, 5]

3、flatMap(): 首先使用映射函数映射每个元素,然后将结果展平到一个新数组中。它相当于对数组的每个元素先调用一个映射函数,然后再将结果展平。

let numbers = [1, 2, 3];
let roots = numbers.flatMap(x => [x, x * x]);
console.log(roots); // 输出: [1, 1, 2, 4, 3, 9]

4、copyWithin(): 在数组内部浅复制元素到另一个位置,并返回它(数组本身),不改变其大小。

let array = [1, 2, 3, 4, 5];
array.copyWithin(0, 3);
console.log(array);     // 输出: [4, 5, 3, 4, 5]

5、from(): 从一个类似数组或可迭代的对象创建一个新的数组实例。

let arrayLike = { length: 3, 0: 'a', 1: 'b', 2: 'c' };
let arr = Array.from(arrayLike);
console.log(arr);                    // 输出: ['a', 'b', 'c']

6、toString(): 返回数组的字符串表示形式。

let array = [1, 2, 3];
let string = array.toString();
console.log(string); // 输出: "1,2,3"

标签:arr,console,log,元素,JS,let,数组,方法
From: https://blog.csdn.net/m0_57715356/article/details/136540202

相关文章

  • markdown使用方法
    基本用法1.标题​ Markdown中使用#符号表示标题,#符号的数量表示标题的级别。例如,#代表一级标题,##代表二级标题,以此类推。标题的级别最多支持六级。2.段落和换行​ Markdown中使用空行来分隔段落,一个空行表示一个段落。如果想在一行内换行,可以在行末添加两个空格。3.强......
  • VOL框架 其他页面调用GetPageData的实现方法
    VOL框架其他页面调用GetPageData的实现方法例如:B页面访问A页面的GetPageData实现思路:1、A后端新建一个Controller,通过这个Controller调用A的service的GetPageData   注意 HttpPost参数要加上 [FromBody][HttpPost,Route("getSubList"),AllowAnonymous]......
  • 基于SpringBoot+MySQL+SSM+Vue.js的生鲜在线销售系统(附论文)
    演示视频基于SpringBoot+MySQL+SSM+Vue.js的生鲜在线销售系统技术描述开发工具:Idea/Eclipse数据库:MySQLJar包仓库:Maven前端框架:Vue/ElementUI后端框架:Spring+SpringMVC+Mybatis+SpringBoot文字描述基于SpringBoot+MySQL+SSM+Vue.js的生鲜在线销售系统(附......
  • 用vue.js写案例——ToDoList待办事项 (步骤和全码解析)
     目录 一.准备工作二.编写各个组件的页面结构三.实现初始任务列表的渲染四.新增任务五.删除任务六.展示未完成条数七.切换状态-筛选数据八.待办事项(全)代码 一.准备工作在开发“ToDoList”案例之前,需要先完成一些准备工作,包括创建项目、引入BootStrap样式文......
  • Node.js毕业设计基于的校园闲置交易分享平台(Express+附源码)
    本系统(程序+源码)带文档lw万字以上  文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:随着互联网技术的飞速发展,人们的生活方式发生了翻天覆地的变化,特别是在校园环境中,学生们的生活节奏加快,学习压力增大。在这样的背景下,校园内产生的闲置物品......
  • 基于SpringBoot+MySQL+SSM+Vue.js的招聘系统(附论文)
    演示视频基于SpringBoot+MySQL+SSM+Vue.js的招聘系统技术描述开发工具:Idea/Eclipse数据库:MySQLJar包仓库:Maven前端框架:Vue/ElementUI后端框架:Spring+SpringMVC+Mybatis+SpringBoot文字描述基于SpringBoot+MySQL+SSM+Vue.js的招聘系统(附论文),用户,管理员......
  • C++与Qt中回调函数的两种实现方法
    一.回调函数介绍1.概念回调函数是一种在程序运行期间通过函数指针调用的函数,它通常用于实现事件驱动、异步通信、消息传递等功能。在回调函数中,被调用的函数通常称为回调函数(CallbackFunction),而调用回调函数的函数通常称为回调函数容器(CallbackContainer)。回调函数容器可......
  • 还在担心报表不好做?不用怕,试试这个方法(三)
    系列文章:《还在担心报表不好做?不用怕,试试这个方法》(一)《还在担心报表不好做?不用怕,试试这个方法》(二)概要在上一篇文章《还在担心报表不好做?不用怕,试试这个方法》(二)中,小编介绍了模板语言中的的一些基本概念和用法,今天小编将继续为大家介绍如何不同字段间的父子关系,是如何在模板......
  • JSX.Element 和 React.ElementType的区别是什么?
    在React和TypeScript中,JSX.Element和React.ElementType代表了两种不同的概念:JSX.Element:JSX.Element是一个类型,表示由JSX编译后生成的实际React元素对象。当你在React应用中使用JSX编写组件时,每一个JSX表达式都会编译为一个JSX.Element对象。例如:constMyComponent:React.......
  • 计算器硬件维护人员如何做绩效考核的方法
    计算器硬件维护人员如何做绩效考核的方法:计算机硬件维护人员的绩效考核方法需要综合考虑多个方面,以确保评估的公正、客观和可执行。以下是一些详细具体且可执行操作的绩效考核方法:一、明确考核目标和标准首先,需要明确计算机硬件维护人员的考核目标和标准。这包括确定考核的具......