js数组方法(二)---不改变原数组的方法(1)

前言

数组方法是针对数组对象的函数,用于执行各种操作,如添加、删除、过滤和转换数组中的元素。JavaScript提供了许多有用的数组方法,帮助开发者更轻松地处理数组,提高代码的可读性和可维护性。现在我要讲的就是其中不会改变原数组的方法

1.concat()合并数组

concat()方法用于合并两个或多个数组,并返回一个新数组。原始数组不会被修改。

js 复制代码
const array1 = [1, 2, 3];
const array2 = [4, 5, 6];
const newArray = array1.concat(array2);

console.log(newArray); // Output: [1, 2, 3, 4, 5, 6]

concat()方法也可以接受多个参数,用于合并多个数组。

js 复制代码
const array1 = [1, 2, 3];
const array2 = [4, 5, 6];
const array3 = [7, 8, 9];
const newArray = array1.concat(array2, array3);

console.log(newArray); // Output: [1, 2, 3, 4, 5, 6, 7, 8, 9]

push()方法不同,concat()方法不会修改原始数组,而是返回一个新数组。如果你只需要合并数组而不想修改原始数组,那么使用concat()方法就是一个很好的选择。

2.join () 数组转字符串

当使用join()方法将数组转换为字符串时会修改原始数组,它只是返回一个新的字符串。而且在转换时可以指定连接数组元素的分隔符。

js 复制代码
let fruits = ["apple", "banana", "cherry", "date"];

// 使用join()方法将数组转换为字符串
let fruitsString = fruits.join(", ");

// 打印结果
console.log(fruitsString); // 输出: "apple, banana, cherry, date"

在这个例子中,我们首先定义了一个包含水果名称的数组。然后,我们使用join()方法将数组转换为一个字符串,并指定以逗号和空格作为分隔符。最后,我们打印出转换后的字符串。join()方法如果不指定分隔符,则默认使用逗号作为分隔符

需要注意的是,如果数组中包含非字符串类型的元素,那么它们会被自动转换为字符串类型。在某些情况下,这可能会导致意外的结果。当数组中包含空元素,那么它们会被转换为空字符串。例如,如果数组中有两个连续的逗号,那么它们会被视为一个空元素,并且在最终的字符串中只会出现一个分隔符。

3.slice()裁切指定位置的数组

slice()方法可以从一个数组中裁切出一个子数组,该子数组包含原始数组的一部分。slice()方法可以接受一个或两个参数。如果只传递一个参数,它将从该位置开始一直裁切到数组的末尾,并返回一个新的子数组。如果传递两个参数,它将从起始下标裁切到(但不包括)结束下标,并返回一个新的子数组。也就是包前不包后,前闭后开。

js 复制代码
let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

// 使用slice()方法获取第3到第6个元素
let subArray = numbers.slice(2, 6);

// 打印结果
console.log(subArray); // 输出: [3, 4, 5, 6]

在这个例子中,我们首先定义了一个包含10个数字的数组。然后,我们使用slice()方法获取从位置2(第3个元素)到位置6(第7个元素)之间的所有元素,返回一个新的子数组。最后,我们打印出新的子数组。

需要注意的是,在使用slice()方法时,起始位置必须小于结束位置,否则该方法将返回一个空数组。此外,slice()方法不会修改原始数组,它只是返回一个新的子数组。

4. indexOf 查询某个元素在数组中第一次出现的位置

indexOf() 方法用于查找数组中某个元素第一次出现的位置。它接受一个参数,即要查找的元素,然后返回该元素在数组中第一次出现的下标,如果未找到该元素,则返回 -1。

js 复制代码
let fruits = ['apple', 'banana', 'orange', 'apple', 'pear'];

// 查询'apple'在数组中第一次出现的位置
let index = fruits.indexOf('apple');

// 打印结果
console.log(index); // 输出: 0

在这个例子中,我们定义了一个包含水果名称的数组。然后使用 indexOf() 方法查找 'apple' 在数组中第一次出现的位置,并将结果存储在变量 index 中。最后打印出结果,得到的索引是 0,因为'apple'在数组中的第一个位置下标是 0。

需要注意的是,indexOf() 方法只返回第一次出现的位置,如果数组中有多个相同的元素,它只会返回第一个匹配的位置。如果要找到所有匹配的位置,可以使用循环结合 indexOf() 方法来实现。

5.lastIndexOf 反向查询数组某个元素在数组中第一次出现的位置

lastIndexOf() 方法与 indexOf() 方法类似,但是它从数组的末尾开始搜索元素,然后返回最后一次出现的位置。

js 复制代码
let fruits = ['apple', 'banana', 'orange', 'apple', 'pear'];

// 反向查询'apple'在数组中第一次出现的位置
let lastIndex = fruits.lastIndexOf('apple');

// 打印结果
console.log(lastIndex); // 输出: 3

在这个例子中,我们使用 lastIndexOf() 方法反向查询 'apple' 在数组中第一次出现的位置,并将结果存储在变量 lastIndex 中。最后打印出结果,得到的索引是 3,因为'apple'在数组中的最后一个位置是 3。

需要注意的是,lastIndexOf() 方法从数组的末尾开始搜索,并返回最后一次出现的位置。如果数组中有多个相同的元素,它只会返回最后一个匹配的位置。如果要找到所有匹配的位置,可以使用循环结合 lastIndexOf() 方法来实现。

6. toString () 将数组转换为字符串

toString() 方法可以将数组转换为字符串。它将数组中的每个元素转换为字符串,并使用逗号分隔这些字符串,最后返回一个包含所有元素的字符串。

以下是一个简单的示例:

js 复制代码
let fruits = ['apple', 'banana', 'orange', 'pear'];

// 将数组转换为字符串
let string = fruits.toString();

// 打印结果
console.log(string); // 输出: "apple,banana,orange,pear"

在这个例子中,我们定义了一个包含水果名称的数组。然后使用 toString() 方法将数组转换为字符串,并将结果存储在变量 string 中。最后打印出结果,得到的字符串是 "apple,banana,orange,pear",每个元素之间用逗号分隔。

需要注意的是,toString() 方法只会将数组的元素转换为字符串,而不会改变原始数组本身。

7. valueOf() 查询数组原始值

valueOf() 方法用于查询数组的原始值。在 JavaScript 中,数组的原始值一般为数组本身。

js 复制代码
let fruits = ['apple', 'banana', 'orange', 'pear'];

// 查询数组的原始值
let arrayValue = fruits.valueOf();

// 打印结果
console.log(arrayValue); // 输出: ['apple', 'banana', 'orange', 'pear']

在这个例子中,我们定义了一个包含水果名称的数组。然后使用 valueOf() 方法查询数组的原始值,并将结果存储在变量 arrayValue 中。最后打印出结果,得到的值仍然是数组 。['apple', 'banana', 'orange', 'pear']

需要注意的是,valueOf() 方法对于数组而言并没有提供额外的功能,因为数组的原始值即为数组本身。它主要用于对象以及其他内置类型的原始值查询

相关推荐
dot.Net安全矩阵9 分钟前
.NET内网实战:通过命令行解密Web.config
前端·学习·安全·web安全·矩阵·.net
叫我:松哥13 分钟前
基于Python flask的医院管理学院,医生能够增加/删除/修改/删除病人的数据信息,有可视化分析
javascript·后端·python·mysql·信息可视化·flask·bootstrap
Hellc00720 分钟前
MacOS升级ruby版本
前端·macos·ruby
前端西瓜哥29 分钟前
贝塞尔曲线算法:求贝塞尔曲线和直线的交点
前端·算法
又写了一天BUG30 分钟前
npm install安装缓慢及npm更换源
前端·npm·node.js
cc蒲公英44 分钟前
Vue2+vue-office/excel 实现在线加载Excel文件预览
前端·vue.js·excel
Java开发追求者44 分钟前
在CSS中换行word-break: break-word和 word-break: break-all区别
前端·css·word
好名字08211 小时前
monorepo基础搭建教程(从0到1 pnpm+monorepo+vue)
前端·javascript
pink大呲花1 小时前
css鼠标常用样式
前端·css·计算机外设
Flying_Fish_roe1 小时前
浏览器的内存回收机制&监控内存泄漏
java·前端·ecmascript·es6