我们平时js的面试中,数组函数的运用是非常常见的,接下来博主重点讲以下几个函数,小伙伴们要记牢了
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]
解释:
concat()函数是连接函数,将一个数组(或字符串)连接在另一个数组(或字符串)当中
应用场景:
合并多个数据对象:例如,合并从多个API获取的数组数据。
将不同的用户数据、列表、文章内容等合并为一个完整的列表或集合。
copyWithin() 复制函数
var fruits = [1,2,3,4];
fruits.copyWithin(2, 0, 2);
console.log(fruits);
运行结果:
[1,2,1,2]
用法:
copyWithin(target,start,end)有三个参数,copyWithin() 会将从 start 到 end 索引的元素复制到 target 索引处,覆盖 target 位置后的元素。
target 代表目标是复制到指定目标索引位置,相当于是2 + 1 = 3,第三个元素的位置。start 代表元素开始复制的位置,相当于是0+1 = 1,第一个元素。
end代表复制到元素的末尾索引,数字是几就是第几个元素。
应用场景:
部分重复:复制数组的一部分内容到数组的其他位置,适合生成重复数据。
数据更新:用于更新数组的部分数据而不改变数组长度。
环形缓冲区:用于在固定长度的数组中,移动数据以实现循环缓存。
数据迁移和合并:将数据从一个位置移动到另一个位置。
填充数据:将数组的前部分或中间部分复制到后面,达到填充的目的。
every() 数组全部元素是否符合某项自定义规则
let arr = [19,20,21]
function checkAge(arr){
return arr>=18;
}
console.log(arr.every(checkAge))
运行结果:
ture
用法:
every() 方法用于检测数组所有元素是否都符合 给定条件(自定义函数)
具体:every() 方法会遍历整个数组,直到找到不满足条件的元素,如果找到,则立即返回 false;如果数组中的所有元素都符合条件,则返回 true。
应用场景:
表单验证:确保所有输入字段都已填写。
类型检查:确保数组中的每个元素都是特定类型。
验证对象结构:确保对象数组中的每个对象都具有预期的属性。
条件过滤和权限检查:确保数据符合预设的业务规则或条件。
fill() 填充函数
let arr1 = new Array(3);
arr1.fill("a");
console.log(arr1);
运行结果:
[a,a,a]
用法:
填充数组全部元素
array.fill(value, start, end),具有三个参数
value:必需。数组中要填充的值。
start:可选。填充的起始索引(默认为 0)。
end:可选。填充的结束索引(默认为数组的长度)。填充的范围是从 start 到 end-1。
filter() 过滤器
let arr1 = new Array(10);
arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
function checkNum(arr1) {
return arr1 <= 5;
}
console.log(arr1.filter(checkNum));
用法:
filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。返回符合函数条件的元素。
注意: filter() 不会对空数组进行检测。
注意: filter() 不会改变原始数组。
forEach() 遍历函数
let arr1 = new Array(10);
arr1 = [1, 2, 3, 4, 5, 6, 7, 4, 8, 9];
//箭头函数式
arr1.forEach((item, index) => {
console.log("item:", item, "index:", index);
});
//函数式
function bianLi(item, index) {
console.log("item:", item, "index:", index);
}
用法
forEach() 是 JavaScript 中的一个数组方法,用于对数组中的每个元素执行一个提供的回调函数。它会遍历数组中的每个元素,依次调用回调函数,并传入当前元素、当前索引以及原数组本身作为参数。
场景:
一般用于数据的渲染,这个大家应该都知道吧,很常见。
总结:
今天的分享就到这啦,有不会的小伙伴们可以评论区发表评论,我会一一解答的!
感谢您的阅读!