改变原数组
1.push()
- 语法:
数组.push() - 作用:将数据追加到数组的末尾
- 返回值:追加数据后数组最新的长度
var arr = [100, 200, 300, 400, 100, 500]
console.log(arr)//[100, 200, 300, 400, 100, 500]
var res = arr.push("追加的")
console.log(arr)//[100, 200, 300, 400, 100, 500, '追加的']
console.log(res)//7
知识点: 在 函数传参的过程中, 如果实参的值是一个引用数据类型,然后在函数内部 对这个形参 做了一些修改,那么会影响到 函数外边的 原数据。
2.pop()
- 语法:
数组.pop() - 作用:删除数组最后一个数据
- 返回值:被删除的数据
var arr = [100, 200, 300, 400, 100, 500]
console.log(arr)
var res = arr.pop()
console.log(arr)//[100, 200, 300, 400, 100]
console.log(res)//500
3.unshift()
- 语法:
数组.unshift() - 作用:将数据添加到数组的最前面
- 返回值:添加数据后数组最新的长度
var arr = [100, 200, 300, 400, 100, 500]
console.log(arr)
var res = arr.unshift(-100)
console.log(arr)//[-100, 100, 200, 300, 400, 100, 500]
console.log(res)//7
4.shift()
- 语法:
数组.shift() - 作用:删除数组最前面一个数据
- 返回值:被删除的数据
var arr = [100, 200, 300, 400, 100, 500]
console.log(arr)
var res = arr.shift()
console.log(arr)//[200, 300, 400, 100, 500]
console.log(res)//100
5.reverse()
- 语法:
数组.reverse() - 作用:将数组反转
- 返回值:反转后的数组
var arr = [100, 200, 300, 400, 100, 500]
console.log(arr)
var res = arr.reverse()
console.log(arr)//[500, 100, 400, 300, 200, 100]
console.log(res)//[500, 100, 400, 300, 200, 100]
6.sort()
- 语法:
- 1.
数组.sort()---将数组内的数据转换为字符串,然后一位一位的对比 - 2.
数组.sort (function (a,b) { return a - b })---从小到大 - 3.
数组.sort (function (a,b) { return b - a })---从大到小
- 1.
- 作用:将数组进行排序
- 返回值:排序好的新数组
var a = [10, 8, 34, 18, 6, 56, 60, 12, 23]
var res = a.sort(function (a, b) {
return a - b
})
console.log(a) // [6, 8, 10, 12, 18, 23, 34, 56, 60]
console.log(res)// [6, 8, 10, 12, 18, 23, 34, 56, 60]
7.splice()
- 语法:
数组.splice(开始索引,多少个)数组.splice(开始索引,多少个,数据1,数据2,数据3......)
- 开始索引:默认为 0 ,多少个:默认为 0 , 要插入的数据:默认是 没有
- 作用:删除数组中若干数据,并选择是否插入新的数据
- 返回值:以新数组的形式返回被删除的数据(剪切到的内容)
var arr = [100, 200, 300, 400, 100, 500]
var res = arr.splice(1, 2)
console.log(arr)//[300, 400, 100, 500]
var arr2 = [1, 2, 3, 4, 5]
var res2 = arr2.splice(0, 3, '新加的数据', '张三', true, 1001)
console.log(arr2) //['新加的数据', '张三', true, 1001, 4, 5]
console.log(res2) //[1, 2, 3]
不会改变原数组
8.indexOf()
- 语法:
数组.indexOf(数据, 从那个下标开始查找) - 第二个参数不写默认为 0
- 作用:从左向右查找数据在数组中的索引位置
- 返回值:有该数据,返回第一次出现的索引位置;没有该数据,返回-1
var arr = [100, 200, 300, 400, 100, 500]
var res = arr.indexOf(200)
console.log(res) // 1
var res = arr.indexOf(600)
console.log(res) // -1
9.lastIndexOf()
- 语法:
数组.lastIndexOf(数据, 从那个下标开始查找) - 第二个参数不写默认为 数组最后一个下标
- 作用:从右向左查找数据在数组中的索引位置
- 返回值:有该数据,返回第一次出现的索引位置;没有该数据,返回-1
var arr = [100, 200, 300, 400, 100, 500]
var res=arr.indexOf(100)
console.log(res)//0
var res2=arr.lastIndexOf(100)
console.log(res2)//4
10.slice()
- 语法:
数组.slice(开始索引,结束索引)---包前不包后 - 开始索引:默认为0 结束索引:默认为数组的长度
- 作用:截取数组中的某些数据
- 返回值:以新数组的形式返回截取出来的数据
var arr = [100, 200, 300, 400, 100, 500]
var res = arr.slice(1,3)
console.log(arr,res)//[100, 200, 300, 400, 100, 500] [200, 300]
var res2=arr.slice(1,-2)
console.log(res2)//[200, 300, 400] 从右往左截取掉2个
var res3=arr.slice(1)
console.log(res3)//[200, 300, 400, 100, 500] 从索引位置开始到最后全部截取
var res4=arr.slice(-3)
console.log(res4)//[400, 100, 500] 从右往左截取3个
11.concat
- 语法:
数组.concat(其他数组) - 作用:将其他数组和数组拼接在一起
- 返回值:拼接好的新数组
var arr = [100, 200, 300, 400, 100, 500]
var res = arr.concat([500, 600])
console.log(arr, res)//[100, 200, 300, 400, 100, 500] [100, 200, 300, 400, 100, 500, 500, 600]
var arr2 = ['hello', 'world']
var res2=arr.concat(arr2)
console.log(arr,res2)//[100, 200, 300, 400, 100, 500] [100, 200, 300, 400, 100, 500, 'hello', 'world']
12.join
- 语法:
数组.join() - 作用:将数组用 连接符 连接成为一个字符串
- 返回值:连接好的字符串
- 如果不传参数,默认按照 , 连接
var arr = [100, 200, 300, 400]
var res = arr.join('---')
console.log(arr,res)//[100, 200, 300, 400] '100---200---300---400'
var res1 = arr.join()
console.log(res1) // 100,200,300,400
13.forEach()
- 语法:
数组.forEach(function(item,index,origin){遍历数组后要做的事}) - 参数: item:数组中每一个元素; index:每一个元素对应的下标; origin:原数组
- 作用:遍历数组
- 返回值:无
14.map()
- 语法:
数组.map( function ( item, index, arr ) {遍历数组后要做的事} ) - 作用:根据原数组映射出来一个新数组
- 返回值:映射后的新数组(需要在函数内部书写 return)
var arr = [100, 200, 300, 400]
var res = arr.map(function (item, index, arr) {
return item * 10
})
console.log(arr,res) //[100, 200, 300, 400] [1000, 2000, 3000, 4000]
15.filter()
- 语法:
数组.filter(function (item, index, origin) { }) - 作用:过滤数组
- 返回值:过滤出来的内容组成一个新数组
var res = arr.filter(function (item, index, arr) {
return item > 150
})
console.log(res)//[200, 300, 400, 500]
var res2 = arr.filter(function (item, index, arr) {
return index>3
})
console.log(res2)//[100, 500]
16.find() 用来获取数组中满足条件的第一个数据
- 语法:
数组.find(function (item, index, origin) { })- item: 这个表示的是数组中的每一项
- index: 这个表示的是每一项对应的索引
- arr: 这个表示的是原数组
- 作用: 用来获取数组中满足条件的数据
- 返回值: 如果有 就是满足条件的第一个数据;如果没有就是undefined
- 注意: 要以return的形式执行返回条件
var arr = [1, 2, 3, 4, 5]
console.log('原始数组 : ', arr);
var res = arr.find(function (item) {
return item > 3
})
console.log(res)//4
17.findIndex()
- 语法:
数组.findIndex(function (item, index, origin) { })
var arr = [1, 2, 3, 4, 5]
console.log('原始数组 : ', arr);origin
var res = arr.findIndex(function (item) {
return item < 2
})
console.log(res)//2
18.every()
- 语法:
数组.every(function (item, index, origin) {}) - 作用:判断数组是不是每一项都满足条件
- 返回值:符合条件--true 否则为--false
var res = arr.every(function (item, index, arr) {
return item > 50
})
console.log(res)//true
19.some()
- 语法:
数组.some(function (item, index, origin) {}) - 作用:判断数组是不是某一项满足条件
- 返回值:符合条件--true 否则为--false
var res = arr.some(function (item, index, arr) {
return item > 150
})
console.log(res)//true
20.reduce() 叠加后的效果
- 语法:
数组名.reduce(function (prev, item, index, origin) { }, 初始值)- prev:一开始就是初始值 当第一次有了结果以后;这个值就是第一次的结果
- item: 这个表示的是数组中的每一项
- index: 这个表示的是每一项对应的索引
- origin: 这个表示的是原数组
- 作用: 就是用来叠加的
- 返回值: 就是叠加后的结果
- 注意: 以return的形式书写返回条件
var arr = [1, 2, 3, 4, 5]
var res = arr.reduce(function (prev, item) {
return prev *= item
}, 2)
console.log(res);//240=2(初始值)*1*2*3*4*5