JS数组常用方法

delete(arr[0]) //这里删除第一个,但是位置还是保留着

console.log(arr[0]) //undefined

6、splice()非纯函数

该方法向数组添加或者删除元素,返回被删除的项目,并同时改变原素组

splice(index,howmany,item1,…itemX)

index参数:必须,整数,规定添加或者删除的位置,使用负数,从数组尾部规定位置

howmany参数:必须,要删除的数量,如果为0,则不删除项目。

tem1,…itemX参数:可选,向数组添加的新项目。

返回值:一个新的数组

//增加元素

let arr = [‘a’, ‘b’, ‘c’]

// 下标为1的位置开始替换,后面的一次向后移动

//第二个参数为0, 就不表示删除元素,只是添加元素

let a = arr.splice(1, 0, ‘james’)

console.log(arr) //[“a”, “james”, “b”, “c”]

console.log(a) // []

//增加元素和删除元素

let arr = [‘a’, ‘b’, ‘c’]

// 下标为1的位置开始替换,后面的一次向后移动

//第二个参数为0, 就不表示删除元素,只是添加元素

let a = arr.splice(1, 1, ‘james’)

console.log(arr) //[“a”, “james”, “c”]

console.log(a) // [‘b’]

//独特的用法

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

前端资料汇总

我一直觉得技术面试不是考试,考前背背题,发给你一张考卷,答完交卷等通知。

首先,技术面试是一个 认识自己 的过程,知道自己和外面世界的差距。

更重要的是,技术面试是一个双向了解的过程,要让对方发现你的闪光点,同时也要 试图去找到对方的闪光点,因为他以后可能就是你的同事或者领导,所以,面试官问你有什么问题的时候,不要说没有了,要去试图了解他的工作内容、了解这个团队的氛围。
找工作无非就是看三点:和什么人、做什么事、给多少钱,要给这三者在自己的心里划分一个比例。
最后,祝愿大家在这并不友好的环境下都能找到自己心仪的归宿。

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值