js数组经常会用到,当涉及到 JavaScript 数组的函数,有许多常用的函数可用于对数组进行操作和转换。以下是一些常见的数组函数的讲解
splice()
函数用于修改数组,可以删除、插入或替换数组中的元素。
var fruits = ['apple', 'banana', 'orange', 'mango'];
// 删除元素
fruits.splice(1, 2);
console.log(fruits); // ['apple', 'mango']
// 插入元素
fruits.splice(1, 0, 'kiwi', 'grape');
console.log(fruits); // ['apple', 'kiwi', 'grape', 'mango']
// 替换元素
fruits.splice(2, 1, 'pear');
console.log(fruits); // ['apple', 'kiwi', 'pear', 'mango']
splice()
删除元素时,第一个参数是开始删除的索引,第二个参数是要删除的元素个数。splice()
插入元素时,第一个参数是开始插入的索引,第二个参数是要删除的元素个数,后面的参数是要插入的元素。splice()
替换元素时,第一个参数是要替换的索引,第二个参数是要删除的元素个数,后面的参数是要替换的元素。slice()
函数用于从数组中提取指定范围的元素,返回一个新的数组。
var fruits = ['apple', 'banana', 'orange', 'mango'];
var citrus = fruits.slice(1, 3);
console.log(citrus); // ['banana', 'orange']
slice()
函数接受两个参数,分别是提取的起始索引和结束索引(不包括结束索引对应的元素)。map()
函数用于对数组中的每个元素执行指定的操作,并返回一个新的数组。
var numbers = [1, 2, 3, 4, 5];
var doubled = numbers.map(function(num) {
return num * 2;
});
console.log(doubled); // [2, 4, 6, 8, 10]
map()
函数接受一个回调函数作为参数,该回调函数用于对数组中的每个元素进行操作。map()
函数返回一个新的数组,其中包含应用回调函数后的结果。concat()
函数用于连接两个或多个数组,并返回一个新的数组。
var arr1 = [1, 2, 3];
var arr2 = [4, 5, 6];
var arr3 = [7, 8, 9];
var merged = arr1.concat(arr2, arr3);
console.log(merged); // [1, 2, 3, 4, 5, 6, 7, 8, 9]
concat()
函数接受一个或多个数组作为参数。filter()
函数用于筛选数组中满足指定条件的元素,并返回一个新的数组。
var numbers = [1, 2, 3, 4, 5];
var evens = numbers.filter(function(num) {
return num % 2 === 0;
});
console.log(evens); // [2, 4]
filter()
函数接受一个回调函数作为参数,该回调函数用于指定筛选条件。filter()
函数返回一个新的数组,其中包含满足筛选条件的元素。reduce() 函数用于对数组中的元素进行累积操作,返回一个累积结果。
var numbers = [1, 2, 3, 4, 5];
var sum = numbers.reduce(function(acc, num) {
return acc + num;
}, 0);
console.log(sum); // 15
reduce()
函数接受一个回调函数和一个初始值作为参数。acc
)和当前元素的值作为参数,并返回累积结果。reduce()
函数从数组的第一个元素开始,依次对每个元素调用回调函数,最终返回累积的结果。forEach()
函数用于对数组中的每个元素执行指定的操作。
var fruits = ['apple', 'banana', 'orange'];
fruits.forEach(function(fruit) {
console.log(fruit);
});
// 输出:
// apple
// banana
// orange
forEach()
函数接受一个回调函数作为参数,该回调函数用于对数组中的每个元素进行操作。forEach()
函数没有返回值,它仅用于遍历数组并执行操作。当然还有其它的操作,也可以自己封装一些操作,欢迎大家在评论区评论留言。