JS数组常用方法,web后端开发技术

//独特的用法

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©

JS中find和findIndex方法


find()方法可以按条件查找数组里符合条件的对象

findIndex()方法可以按条件查找数组里符合条件的对象的索引

获取对象在数组中索引

let stu = [{

name: ‘张三’,

gender: ‘男’,

age: 25

},

{

name: ‘李四’,

gender: ‘男’,

age: 28
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后

前端CSS面试题文档,JavaScript面试题文档,Vue面试题文档,大厂面试题文档,需要的读者可以戳这里免费领取!

时减轻大家的负担。**

[外链图片转存中…(img-hwwimu1T-1712166694955)]

[外链图片转存中…(img-0CKNw3Wg-1712166694955)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

[外链图片转存中…(img-Z7sCGnIJ-1712166694956)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后

前端CSS面试题文档,JavaScript面试题文档,Vue面试题文档,大厂面试题文档,需要的读者可以戳这里免费领取!

[外链图片转存中…(img-t1G6jQOM-1712166694956)]

[外链图片转存中…(img-OM27JkZ7-1712166694956)]

  • 19
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值