在 JavaScript 中,数组是一种非常常用的数据结构。JavaScript 提供了许多内置函数来处理数组,这些函数可以分为两类:具有变异性和不具有变异性。
具有变异性的函数会更改原始数组的值,而不具有变异性的函数则会返回一个新的数组而不更改原始数组。在本文中,我们将深入探讨哪些 JavaScript 数组函数具有变异性。
具有变异性的函数
以下是一些常见的具有变异性的 JavaScript 数组函数:
push()
push()
方法将一个或多个元素添加到数组的末尾,并返回修改后的数组长度。
示例代码:
const fruits = ['apple', 'banana']; const newLength = fruits.push('orange'); console.log(fruits); // 输出 ["apple", "banana", "orange"] console.log(newLength); // 输出 3
pop()
pop()
方法从数组的末尾删除一个元素,并返回该元素的值。
示例代码:
const fruits = ['apple', 'banana', 'orange']; const lastElement = fruits.pop(); console.log(fruits); // 输出 ["apple", "banana"] console.log(lastElement); // 输出 "orange"
shift()
shift()
方法从数组的开头删除一个元素,并返回该元素的值。
示例代码:
const fruits = ['apple', 'banana', 'orange']; const firstElement = fruits.shift(); console.log(fruits); // 输出 ["banana", "orange"] console.log(firstElement); // 输出 "apple"
unshift()
unshift()
方法将一个或多个元素添加到数组的开头,并返回修改后的数组长度。
示例代码:
const fruits = ['apple', 'banana']; const newLength = fruits.unshift('orange', 'pear'); console.log(fruits); // 输出 ["orange", "pear", "apple", "banana"] console.log(newLength); // 输出 4
splice()
splice()
方法可以从数组中添加或删除元素,并返回已删除的元素。
示例代码:
const fruits = ['apple', 'banana', 'orange']; const deletedElements = fruits.splice(1, 1, 'grape', 'watermelon'); console.log(fruits); // 输出 ["apple", "grape", "watermelon", "orange"] console.log(deletedElements); // 输出 ["banana"]
sort()
sort()
方法按字母顺序对数组进行排序,并更改原始数组。
示例代码:
const fruits = ['apple', 'banana', 'orange']; fruits.sort(); console.log(fruits); // 输出 ["apple", "banana", "orange"]
reverse()
reverse()
方法反转数组的顺序,并更改原始数组。
示例代码:
const fruits = ['apple', 'banana', 'orange']; fruits.reverse(); console.log(fruits); // 输出 ["orange", "banana", "apple"]
不具有变异性的函数
以下是一些常见的不具有变异性的 JavaScript 数组函数:
concat()
concat()
方法合并两个或多个数组,并返回新的数组。
示例代码:
const fruits1 = ['apple', 'banana']; const fruits2 = ['orange', 'pear']; const allFruits = fruits1.concat(fruits2); console.log(allFruits); // 输出 ["apple", "banana", "orange", "pear"]
slice()
slice()
方法从数组中提取一部分,并返回一个新的数组。
示例代码:
const fruits = ['apple', 'banana', 'orange', 'pear']; const citrusFruits = fruits.slice(1, 3); console.log(citrusFruits); // 输出 ["banana", "orange"]
filter()
filter()
方法创建一个新的数组,其中包含通过测试函数的所有元素。
示例代码:
const numbers = [1, 2, 3, 4, 5]; const evenNumbers = numbers.filter(number => number % 2 === 0); console.log(evenNumbers); // 输出 [2, 4]
map()
map()
方法创建一个新的数组,
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/30629