前言
数组方法是针对数组对象的函数,用于执行各种操作,如添加、删除、过滤和转换数组中的元素。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()
方法对于数组而言并没有提供额外的功能,因为数组的原始值即为数组本身。它主要用于对象以及其他内置类型的原始值查询