js 数组 (方法总是记不住)

一 . 数组的方法
 push() pop() shift() unshift() join() sort() reverse() concat() slice() splice() indexOf() lastIndexOf() forEach() map() filter() every() some 

 1.push() 和 pop()

push() :把里面的内容添加到数组的末尾,并返回修改后的长度
pop(): 移除数组最后一项。返回移除的那个值,并减少数组的长度
let arr = [1,2,3,4,5,6]
let arr1 = arr.push(9)
console.log(arr1) // 7 返回修改后的长度 let newArr = arr.pop()
console.log(newArr,arr) // 7 移除的那个值,123456 arr.length = 6减少数组的长度

2.shift() 和 unshift()

shift: 删除原数组的第一项,并返回删除元素的值,如果数组为空则返回 undefined
unshift: 将参数添加到原数组的开头,返回数组的长度
let arr = [1,2,3,4,5,6]
let arr1 = arr.shift()
console.log(arr,arr1) //  [2, 3, 4, 5, 6] , 1
let newArr = arr.unshift('a')
console.log(newArr,arr) // 7, (7) ["a", 1, 2, 3, 4, 5, 6]

3.join

将数组转字符串,然后给它规定一个连接的字符,默认是逗号 arr.join('连接符')
let arr = [1,2,3,4,5,6]
let arr1 = arr.join('-')
console.log(arr1) // 1-2-3-4-5-6
4.sort()  // 原数组被改变
将在原数组上对数组元素进行排序,即排序时不创建新的数组副本  ,精确地说,是按照字符编码(Unicode)的顺序)对数组中的元素进行排序
可知参数是可选的,也就是有两种情况,一是不加参数,另外一种是加函数参数,参数必须是函数
//a,b表示相邻的两个元素     //若返回值>0,数组元素将按升序排列     //若返回值<0,数组元素将按降序排列
注:sort() 的方法比较的是字符串,没有按照数值的大小对数字进行排序,要实现这一点,就必须使用一个排序的函数
 let arr = [23,45,5,12]
console.log(arr.sort()) // ["12", "23", "45", "5"]
let arr = ['a','f','b','e']
console.log(arr.sort()) // [a,b,e,f]
let arr = [1,3,4,10,2,5]
function num (a,b) {
 console.log('a:',a,'b:',b,'arr:',arr)
 if (a > b) {
     return 1
 } else if (a < b) {
     return -1
   } else {
     return 0
 }

}
    console.log(arr.sort(num)) // [1, 2, 3, 4, 5, 10]
控制台输出 a 3 ,b=1  a > b 返回值 大于0 按照升序排列 位置不换 
控制台输出 a 3 ,b=1  a < b 返回值 小于于0 按照升序排列 位置交换  不在想后比较  像前比较
大致比较的过程就是这样进行的 如果有错误 欢迎指出
第一次  a = 3 ,b=1   arr  [1,3,4,10,2,5]
第2次  a = 4 ,b= 3   arr  [1,3,4,10,2,5]
第3次  a = 10 ,b= 4   arr  [1,3,4,10,2,5]
第4次  a = 2 ,b= 10   arr  [1,3,4,2,10,5]
第5次  a = 2 ,b= 4   arr  [1,3,2,4,10,5]
第6次  a = 2 ,b= 3  arr  [1,2,3,10,5]  依次类推

5.reverse()   // 原数组被改变

反转数组项的顺序
let arr = [1,4,10,2,5]
let a = arr.reverse()
console.log(a,arr)//  [5, 2, 10, 4, 1] (5) [5, 2, 10, 4, 1]

6.concat() 返回合并后的新数组,不改变原数组

将参数添加到原来的数组中。这个方***创建当前数组的一个副本,然后将接收的参数添加到这个副本的末尾,最后返回新构建的数组,在没有给 concat()的方法传递参数的情况下,它只是复制当前数组的并返回副本
let arr = [1,4,10,2,5]
let a = arr.concat(6,7,8)
console.log(a,arr) a: 1,4,10,2,5,6,7,8 arr: 1,4,10,2,5 
... 扩展运算符 ES6 中的结构赋值
let arr = [1,4,10,2,5]
let arr1 = ['a','b']
let arr3 = [...arr,...arr1]
 console.log(arr3) //  [1, 4, 10, 2, 5, "a", "b"]

7.slice  返回截取的数组,不改变原数组

返回从原数组中指定开始的下标到结束下标之间的项组成的新数组。slice()方法可以接受1-2 个参数,即要返回项的起始和结束位置。在只有一个参数的情况下,slice()方法返回从该参数指定位置开始到当前数组末尾所以项。如果有2个参数。该方法返回起始和结束位置之间的项 --- 但不包括结束位置的项。






全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务