数组的常用方法
- push
push 是用来在数组的末尾追加一个元素
var arr = [1, 2, 3]
// 使用 push 方法追加一个元素在末尾
arr.push(4)
console.log(arr) // [1, 2, 3, 4]
- pop
pop 是用来删除数组末尾的一个元素
var arr = [1, 2, 3]
// 使用 pop 方法删除末尾的一个元素
arr.pop()
console.log(arr) // [1, 2]
- unshift
unshift 是在数组的最前面添加一个元素
var arr = [1, 2, 3]
// 使用 unshift 方法想数组的最前面添加一个元素
arr.unshift(4)
console.log(arr) // [4, 1, 2, 3]
- shift
shift 是删除数组最前面的一个元素
var arr = [1, 2, 3]
// 使用 shift 方法删除数组最前面的一个元素
arr.shift()
console.log(arr) // [2, 3]
- splice
splice 是截取数组中的某些内容,按照数组的索引来截取
语法: splice(从哪一个索引位置开始,截取多少个,替换的新元素) (第三个参数可以不写)
var arr = [1, 2, 3, 4, 5]
// 使用 splice 方法截取数组
arr.splice(1, 2)
console.log(arr) // [1, 4, 5]
arr.splice(1, 2) 表示从索引 1 开始截取 2 个内容
第三个参数没有写,就是没有新内容替换掉截取位置
var arr = [1, 2, 3, 4, 5]
// 使用 splice 方法截取数组
arr.splice(1, 2, '我是新内容')
console.log(arr) // [1, '我是新内容', 4, 5]
arr.splice(1, 2, ‘我是新内容’) 表示从索引 1 开始截取 2 个内容
然后用第三个参数把截取完空出来的位置填充
- reverse
reverse 是用来反转数组使用的
var arr = [1, 2, 3]
// 使用 reverse 方法来反转数组
arr.reverse()
console.log(arr) // [3, 2, 1]
- sort
sort 是用来给数组排序的
var arr = [2, 3, 1,11,7,22]
// 使用 sort 方法给数组排序
//用法一
arr.sort()
console.log(arr) // [1, 2, 3]
- concat
concat 是把多个数组进行拼接
和之前的方法有一些不一样的地方,就是 concat 不会改变原始数组,而是返回一个新的数组
var arr = [1, 2, 3]
// 使用 concat 方法拼接数组
var newArr = arr.concat([4, 5, 6])
console.log(arr) // [1, 2, 3]
console.log(newArr) // [1, 2, 3, 4, 5, 6]
var arr2 = [4,5,6]
var arr3 = [7,8,9]
var arr4 = arr.concat(arr1,arr2)
console.log(arr4)//[1, 2, 3, 4, 5, 6, 7, 8, 9]
注意: concat 方法不会改变原始数组
- join
join 是把数组里面的每一项内容链接起来,变成一个字符串
可以自己定义每一项之间链接的内容 join(要以什么内容链接)
不会改变原始数组,而是把链接好的字符串返回
var arr = [1, 2, 3]
// 使用 join 链接数组
var str = arr.join('-')
console.log(arr) // [1, 2, 3]
console.log(str) // 1-2-3
注意: join 方法不会改变原始数组,而是返回链接好的字符串
- indexOf
indexOf 用来找到数组中某一项的索引
语法: indexOf(你要找的数组中的项)
var arr = [1, 2, 3, 4, 5]
// 使用 indexOf 超找数组中的某一项
var index = arr.indexOf(3)
console.log(index) // 2
我们要找的是数组中值为 3 的那一项
返回的就是值为 3 的那一项在该数组中的索引
如果你要找的内容在数组中没有,那么就会返回 -1
var arr = [1, 2, 3, 4, 5]
// 使用 indexOf 超找数组中的某一项
var index = arr.indexOf(10)
console.log(index) // -1
你要找的值在数组中不存在,那么就会返回 -1
- lastIndexOf
lastIndexOf 返回指定元素在数组中的最后一个的索引,不存在则返回 -1
语法: lastIndexOf(你要找的数组中的项)`
var arr = [1, 2, 3, 4, 5]
// 使用 indexOf 超找数组中的某一项
var index = arr.lastIndexOf(3)
console.log(index) // 2
我们要找的是数组中值为 3 的那一项
返回的就是值为 3 的那一项在该数组中的索引
如果你要找的内容在数组中没有,那么就会返回 -1
var arr = [1, 2, 3, 4, 5]
// 使用 indexOf 超找数组中的某一项
var index = arr.lastIndexOf(10)
console.log(index) // -1
你要找的值在数组中不存在,那么就会返回 -1
- slice
slice() 方法可从已有的数组中返回选定的元素。
slice()方法可提取数组的某个部分,并以新的数组返回被提取的部分。
语法:array.slice(start, end)
注意: slice() 方法不会改变原始数组。
var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(1,3);
console.log(citrus)//["Orange", "Lemon"]
var citrus = fruits.slice(1);
console.log(citrus)// ["Orange", "Lemon", "Apple", "Mango"]
如果某个参数为负,则从数组的结尾开始计数。
var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var myBest = fruits.slice(-3,-1);
console.log(myBest);//["Lemon", "Apple"]
- forEach
forEach就是用来遍历数组的
arr.forEach(function (item, index, arr) {})
var arr = [1, 2, 3]
// 使用 forEach 遍历数组
arr.forEach(function (item, index, arr) {
// item 就是数组中的每一项
// index 就是数组的索引
// arr 就是原始数组
console.log('数组的第 ' + index + ' 项的值是 ' + item + ',原始数组是', arr)
})
forEach() 的时候传递的那个函数,会根据数组的长度执行
数组的长度是多少,这个函数就会执行多少回
- map
和 forEach 类似,只不过可以对数组中的每一项进行操作,返回一 个新的数组
var arr = [1, 2, 3]
// 使用 map 遍历数组
var newArr = arr.map(function (item, index, arr) {
// item 就是数组中的每一项
// index 就是数组的索引
// arr 就是原始数组
return item + 10
})
console.log(newArr) // [11, 12, 13]
- filter
和 map 的使用方式类似,按照我们的条件来筛选数组
把原始数组中满足条件的筛选出来,组成一个新的数组返回
var arr = [1, 2, 3]
// 使用 filter 过滤数组
var newArr = arr.filter(function (item, index, arr) {
// item 就是数组中的每一项
// index 就是数组的索引
// arr 就是原始数组
return item > 1
})
console.log(newArr) // [2, 3]
我们设置的条件就是 > 1
返回的新数组就会是原始数组中所有 > 1 的项
some满足条件返回true,没有则返回false