js的数组方法总结

14 篇文章 0 订阅
11 篇文章 1 订阅

push()

在数组的末尾添加一个或者多个元素,返回新的数组长度,原数组改变

let arr = ['A', 'B', 'C', 'D', 'E']
let count = arr.push('F')
console.log(count); // 6
console.log(arr); // ["A", "B", "C", "D", "E", "F"]

pop()

删除并返回数组的最后一个元素,原数组改变

let arr = ['A', 'B', 'C', 'D', 'E']
let count = arr.pop()
console.log(count); // E
console.log(arr); // ["A", "B", "C", "D"]

shift()

删除并返回数组的第一个元素,原数组改变

let arr = ['A', 'B', 'C', 'D', 'E']
let count = arr.shift()
console.log(count); // A
console.log(arr); // ["B", "C", "D", "E"]

unshift()

在数组的开头添加一个或者多个元素,返回新的数组长度,原数组改变

let arr = ['A', 'B', 'C', 'D', 'E']
let count = arr.unshift('F','G')
console.log(count); // 7
console.log(arr); //  ["F", "G", "A", "B", "C", "D", "E"]

sort()

将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序,元素需为字符串才有效,若想对数字进行排序需要使用排序函数,原数组改变

字符串排序:

let arr = ["100", '1', "34", "466", '20', "42", "78", "799"]
console.log(arr.sort()) //  ["1", "100", "20", "34", "42", "466"]
console.log(arr); //  ["1", "100", "20", "34", "42", "466"]

数字:

let arr = [100, 1, 34, 466, 20, 42]
console.log(arr.sort()) // [1, 100, 20, 34, 42, 466]
console.log(arr); // [1, 100, 20, 34, 42, 466]

可以发现数字并不是按照数字的大小排序的,若想排序

let arr = [100, 1, 34, 466, 20, 42, 78, 799]
funct(a, b) {
    return a - b  //从小到大是a-b,从大到小是b-a
}
console.log(arr.sort(numSort)) // [1, 20, 34, 42, 78, 100, 466, 799]
console.log(arr); // [1, 20, 34, 42, 78, 100, 466, 799]

reverse()

用于颠倒数组中元素的顺序,原数组改变

let arr = ['Tom', 'Jack', 'Maria']
console.log(arr.reverse()); // ["Maria", "Jack", "Tom"]
console.log(arr); // ["Maria", "Jack", "Tom"]

join()

将数组转化成字符串,然后给他规定个连接字符,默认的是逗号,原数组不变

let arr = [1,2,3,4,5]
console.log(arr.join()); // 1,2,3,4,5
console.log(arr.join('-')) // 1-2-3-4-5
console.log(arr); // [1,2,3,4,5]

concat()

用于连接两个或多个数组,若传入的参数为具体的值,则将值添加到数组中,原数组不变,返回的为经过拼接后新的数组

参数是字符串:

let arr = ['a', 'b']
console.log(arr.concat('1', '2')); // ["a", "b", "1", "2"]
console.log(arr); // ["a", "b"]

参数是数组:

let arr = ['a', 'b']
let arr1 = ['c', 'd']
let arr2 = ['e', 'f']
console.log(arr.concat(arr1, arr2)); // ["a", "b", "c", "d", "e", "f"]

slice()

接收一个或两个参数(至少一个),分别代表返回项的开始位置(包括)和结束位置(不包括),若第一个参数如果是负数,那么它代表从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,若第二个参数为负数,那么它代表从数组尾部开始算起的元素,原数组不变,返回截取的数组

let arr = ["a", "b", "c", "d", "e", "f"]
console.log(arr.slice(2)); // [c", "d", "e", "f"]
console.log(arr.slice(2,5)); // ["c", "d", "e"]
console.log(arr.slice(-2)); // ["e", "f"]
console.log(arr.slice(-4,-1)); // ["c", "d", "e"]

splice()

向/从数组中添加/删除项目,支持传入两个或三个参数(至少两个),第一个参数为添加/删除项目的位置,第二个参数为删除的数目,第三个为可添加的项,该方法会改变原数组,返回被删除的项(若添加了项则返回空数组)

一个参数:截取数组位置1后面的参数返回新的数组

let arr = ["a", "b", "c", "d", "e", "f"]
console.log(arr.splice(1)); // ["b", "c", "d", "e", "f"]
console.log(arr); // ["a"]

两个参数:截取数组位置1后面3个参数返回新的数组

let arr = ["a", "b", "c", "d", "e", "f"]
console.log(arr.splice(1,3));  // ["b", "c", "d"]
console.log(arr); // ["a", "e", "f"]

三个参数:向数组位置2后面添加一个参数

let arr = ["a", "b", "c", "d", "e", "f"]
console.log(arr.splice(2,0,'g')); // []
console.log(arr); // ["a", "b", "g", "c", "d", "e", "f"]

indexOf()

用于在数组中查找某一项出现的位置,支持传入一个或两个参数(最少一个),第一个参数表示要查找的项,第二个参数表示从哪一项开始查找,不传时默认为0,找到则返回第一次找到的位置,未找到则返回-1

let arr = ["a", "b", "c", "d", "e", "f"]
console.log(arr.indexOf('f')); // 5
console.log(arr.indexOf('a', 3)); // -1

lastIndexOf()

接收两个参数:要查找的项和(可选的)表示查找起点位置的索引。其中, 从数组的末尾开始向前查找。
lastIndexOf()方法虽然是从后往前搜索,但返回的位置是从前开始数的。

let arr = ["a", "b", "d" , "c", "d", "e", "f"]
console.log(arr.lastIndexOf('d'));  // 4

forEach()

用于遍历数组,forEach方法中的function回调有三个参数:第一个参数是遍历的数组内容,第二个参数是对应的数组索引,第三个参数是数组本身

let arr = [1, 2, 3]
arr.forEach(item => {
    console.log(item); 
});
输出:
1
2
3

map()

返回一个新数组,新数组中的元素为原始数组中的每个元素调用函数处理后得到的值。

let arr = [1, 2, 3, 4]
arr.map((item)=> {
    console.log(item); 
})
输出:
1
2
3
4
let arr = [1, 2, 3, 4]
function arrMap(arr) {
    return arr.map((item, index) => {
        return item*2
    })
}
console.log(arrMap(arr)); // [2, 4, 6, 8]

filter

创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。

let arr = [1,2,3,4,5]
let arr1 = arr.filter((item)=> {
    return item > 2
})
console.log(arr1);   // [3, 4, 5]
let arr = [
   {
       name: 'Maria',
       id: '01'
   },
   {
       name: 'Mike',
       id: '02'
   },
   {
       name: 'Jane',
       id: '03'
   },
   {
       name: 'Mike',
       id: '04'
   }
]
let arr1 = arr.filter(item => item.name =='Mike').map(item => item.id)   
console.log(arr1);  // ["02", "04"]

arr.filter(item => item.name ==‘Mike’)获取到数组[{name: “Mike”, id: “02”},{name: “Mike”, id: “04”}],最后再遍历得到该数组里面的某个元素对应的值返回数组

every和some

every()是对数组中的每一项运行给定函数,如果该函数对每一项返回true,则返回true。some()是对数组中每一项运行指定函数,如果该函数对任一项返回true,则返回true。

let arr = [
   { isComplete: false, id: '01' },
   { isComplete: true, id: '02' },
   { isComplete: false, id: '03' },
   { isComplete: false, id: '04' }
]
console.log(arr.some( item => item.isComplete )) // true
console.log(arr.every( item => item.isComplete ));
// false

toString

将数组转化为字符串,可以实现拼接

let arr = [10, 20, 30, 40, 50]
console.log(arr.toString()); // 10,20,30,40,50

isArray

判断是否是数组

let arr = [10, 20, 30, 40, 50]
console.log(Array.isArray(arr)); //true
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值