//独特的用法
let array = [1,2,3,4,5];
let array2 = array.splice(3);
// 从下标3的位置开始删除
// array [1,2,3]
// array2 [4,5]
7、concat()
concat() 方法通过合并(连接)现有数组来创建一个新数组
方法不会更改现有数组。它总是返回一个新数组。
方法可以使用任意数量的数组参数
//传递一个参数
let a = [1,2,3]
let b = [4]
let c = a.concat(b)
console.log© //[1,2,3,4]
//传递两个参数
let a = [1,2,3]
let d = [5]
let b = [4]
let c = a.concat(b, d)
console.log© //[1, 2, 3, 4, 5]
8、slice()纯函数
slice() 方法用数组的某个片段切出新数组。
特点:返回一个新的数组,不会改变原来的数组
let a = [1,2,3]
let b = a.slice(2)
console.log(a) // [1,2,3] 原来的数组
console.log(b) //[3] 返回的新数组
9、sort()
- sort()不传递参数时,会以默认方式进行排序,就是以字母顺序进行排序,准确的讲就是按照字符编码的顺序进行排序。
let a = [1000,3,76,12,79]
let b = a.sort()
console.log(b) //[1000, 12, 3, 76, 79]
- 传递参数,使数组中按照顺序排列,就需要自己写一个函数了
let a = [1000,3,76,12,79]
let b = a.sort(function (a, b) {
return b - a;
})
console.log(b) //[3, 12, 76, 79, 1000]
- 数组乱序
a.sort(function(a,b){
return Math.random() - 0.5;
}
let arr = [{ age: 18, sex: 0 }, { age: 19, sex: 0 }, { age: 20, sex: 0 }, { age: 18, sex: 1 }, { age: 19, sex: 1 }];
arr.sort((a, b) => {
if (a.age === b.age) { //若年龄相同就按性别排,女士优先
return a.sex - b.sex;
} else { //年龄不相同就默认按年龄排升序
return a.age - b.age;
}
})
10、reverse()
反转数组
11、Math.max()和Math.min()
function myArrayMax(arr) {
return Math.max.apply(null, arr);
}
//Math.max.apply([1,2,3]) 等价于 Math.max(1,2,3)
12 、map()
参数:项目值(item, 必须)、项目索引(index, 可选)、数组本身(arr, 可选)
map()
方法通过对每个数组元素执行函数来创建新数组。
map()
方法不会对没有值的数组元素执行函数。
map()
方法不会更改原始数组。
let a = [1,2,3,4,5]
let b = a.map( x => x * 2)
console.log(a) //[1, 2, 3, 4, 5] 原数组
console.log(b) //[2, 4, 6, 8, 10] 新数组
13、forEach()
参数:项目值(item, 必须)、项目索引(index, 可选)、数组本身(arr, 可选)
forEach会遍历数组, 没有返回值, 不允许在循环体内写return, 不会改变原来数组的内容
forEach()也可以循环对象。
let a = [1,2,3,4,5]
a.forEach( x => console.log(x) )
14、filter()
filter 会过滤掉数组中不满足条件的元素, 把满足条件的元素放到一个新数组中, 不改变原数组
参数:项目值(item, 必须)、项目索引(index, 可选)、数组本身(arr, 可选)
结果:返回一个新的数组
let a = [1,2,3,4,5]
let b= a.filter(function (x) {
return x > 3
})
console.log(b) //[4,5]
15、reduce()
reduce() 方法在每个数组元素上运行函数,以生成(减少它)单个值。
reduce() 方法在数组中从左到右工作。
reduce() 方法不会改变原始数组。
参数:总数(初始值/先前返回的值)、项目值(item, 必须)、项目索引(index, 可选)、数组本 身(arr, 可选)
et array = [1, 2, 3, 4];
let temp = array.reduce((x, y) => {
return x + y;
});
console.log(temp); // 10
console.log(array); // [1, 2, 3, 4]
//x 是上一次计算过的值, 第一次循环的时候是数组中的第1个元素
//y 是数组中的每个元素, 第一次循环的时候是数组的第2个元素
16、every()
参数:项目值(item, 必须)、项目索引(index, 可选)、数组本身(arr, 可选)
every遍历数组, 每一项都是true, 则返回true, 只要有一个是false, 就返回false
let array = [1, 2, 3, 4];
let res = array.every((item, index, array) => {
return item > 2;
});
console.log(res); //false
17、some()
参数:项目值(item, 必须)、项目索引(index, 可选)、数组本身(arr, 可选)
some遍历数组, 只要有一个是true, 就返回true
let array = [1, 2, 3, 4];
let res = array.every((item, index, array) => {
return item > 2;
});
console.log(res); //true
以上6种方法注意
**以上均不改变原数组。
some、every返回true、false。
map、filter返回一个新数组。
reduce让数组的前后两项进行某种计算,返回最终操作的结果。
forEach 无返回值。**
18、indexOf() 和 lastindexOf()
indexOf(n) 检查n第一次出现的下标位置
lastIndexOf(n) 检查最后一次出现的下标位置
let a = [1,2,3,2,3]
console.log(a.indexOf(1)) //0
console.log(a.lastIndexOf(3)) //2
拿到MP4
let fileName = ‘nndnsakldn.mp4’;
console.log(fileName.lastIndexOf(“.”));
console.log(fileName.substring(fileName.lastIndexOf(“.”) + 1));
19、includes()
用法:includes()方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false。 (ES6新增的)
20、find()
find()方法,用于找出第一个符合条件的数组成员。它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该成员。如果没有符合条件的成员,则返回undefined。
参数:项目值(item, 必须)、项目索引(index, 可选)、数组本身(arr, 可选)
let a = [1,2,3,4,5]
let c = a.find(function (x) {
return x > 2
})
console.log© //3
21、findIndex()
findIndex()方法的用法与find()方法非常类似,返回第一个符合条件的数组成员的位置,如果所有成员都不符合条件,则返回-1。
let a = [1,2,3,4,5]
let c = a.findIndex(function (x) {
return x > 6
})
console.log©
find()方法可以按条件查找数组里符合条件的对象
findIndex()方法可以按条件查找数组里符合条件的对象的索引
获取对象在数组中索引
let stu = [{
name: ‘张三’,
gender: ‘男’,
age: 25
},
{
name: ‘李四’,
gender: ‘男’,
age: 28
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
![](https://i-blog.csdnimg.cn/blog_migrate/0024401eee80b0526410a300ab1acf93.jpeg)
最后
前端CSS面试题文档,JavaScript面试题文档,Vue面试题文档,大厂面试题文档,需要的读者可以戳这里免费领取!
时减轻大家的负担。**
[外链图片转存中…(img-hwwimu1T-1712166694955)]
[外链图片转存中…(img-0CKNw3Wg-1712166694955)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
[外链图片转存中…(img-Z7sCGnIJ-1712166694956)]
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
![](https://i-blog.csdnimg.cn/blog_migrate/0024401eee80b0526410a300ab1acf93.jpeg)
最后
前端CSS面试题文档,JavaScript面试题文档,Vue面试题文档,大厂面试题文档,需要的读者可以戳这里免费领取!
[外链图片转存中…(img-t1G6jQOM-1712166694956)]
[外链图片转存中…(img-OM27JkZ7-1712166694956)]