【会改变原数组】
1. Array.push(),向数组的末尾添加一个或多个元素,并返回新的数组长度。原数组改变
let arr = [1,2,3,4]
arr.push(5,6,7)
console.log(arr) // [1, 2, 3, 4, 5, 6, 7]
2. Array.pop(),删除并返回数组最后一个元素,若该数组为空.泽返回undefind。原数组改变
let arr = [1,2,3,4]
let del = arr.pop()
console.log(del, arr) // 4 [1,2,3]
3. Array.unshift(),向数组的开头添加一个或多个元素,并返回新的数组长度。原数组改变
let arr = [1,2,3,4]
let res = arr.unshift('0','你好')
console.log(res) // 6
consloe.log(arr) // ['0','你好',1,2,3,4]
4. Array.shift(),删除数组的第一项,并且返回第一个元素的值.若盖数组为空,泽返回undefined。原数组改变
let arr = ['你好',1,2,3,4]
let res = arr.shift()
console.log(res) // 你好
console.log(arr) // [ 1, 2, 3, 4]
5. Array.revrse(),将数组倒叙.改变原数组
let arr = [1,2,3,4]
arr.reverse()
console.log(arr) // [4, 3, 2, 1]
6. Array.sort(),对数组进行排序.按照字符串UniCode码
①从小到大排序
let arr = [1, 2, 99, 67, 88]
let sortNum = function (a, b) { return a-b }
console.log(arr.sort(sortNum)) // [1, 2, 67, 88, 99]
②从大到小排序
let arr = [1, 2, 99, 67, 88]
let sortNum = function (a, b) { return b-a }
console.log(arr.sort(sortNum)) // [99, 88, 67, 2, 1]
③按照数组对象中的某个值进行排序
let arr = [
{name:'张三',age:'18'},
{name:'李四',age:'14'},
{name:'王五',age:'26'}
]
function compare(param){
return function sortAge(a,b){
return a[param]-b[param]
}
}
console.log(arr.sort(compare('age')))
7. Array.splice(index,howmany,arr1,arr2...),删除元素并添加元素,从index位置开始删除howmany个元素,并将arr1、arr2...数据从index位置依次插入.howmany为0时,则不删除元素, 返回删除的数组
原数组改变.
let arry = ['1','2','3','4','5','6']
console.log(arry.splice(2,2,'测试','ceshi')) // ['3', '4']
console.log(arry) // ['1', '2', '测试', 'ceshi', '5', '6']
【原数组不改变】
1. Array.join(),将数组的每一项用指定字符串连接成一个字符串.默认连接符是","逗号
let arr = [1,2,3,4]
let str1 = arr.join()
let str2 = arr.join('-')
console.log(str1) // 1,2,3,4
console.log(str2) // 1-2-3-4
2. Array.concat(arr1,arr2...),合并两个或者多个数组,生成一个新的数组,原数组不改变
let arr = [1,2,3,4]
let arr1 = ['a','b','c']
let arr2 = ['A','B','C']
let res = arr.concat(arr1,arr2)
console.log(res) // [1, 2, 3, 4, 'a', 'b', 'c', 'A', 'B', 'C']
3.Array.map(function),原数组的每一项执行函数后,返回一个新的数组.原数组不改变
注意与forEach的区别
4. Array.forEarch(function),用于调用数组的每个元素,并将元素传递给回调函数.原数组不改变
(注意直接打印Array.forEach,结果为undefind).
5. Array.slice(start,end),从start开始,end之前结束,顾前不顾后.如果不给end值,从start开始到数组结束.start可以给负值,-1表示数组最后位置,-2表示倒数第二个,以此类推.
let arry = [1,2,3,4]
console.log(arry.slice(-3,-1)) // [2, 3]
6. Array.filter(function),过滤数组中,符合条件的元素返回一个新的数组.原数组不改变
let arr = [1,2,3,4,5]
console.log(arr.filter(x=>x>3)) // [4, 5]
console.log(arr) // [1, 2, 3, 4, 5]
7. Array.every(function),对数组中的每一项进行判断,若都符合则返回true,否则返回false
8. Array.some(function),对数组中的每一项进行判断,若都不符合则返回false,否则返回true
9. Array.reduce(function),reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值
let arr = [1,2,3,4,5]
let aa = ['1',2,3,4,5]
console.log(arr.reduce((a,b)=>a+b)) // 15
console.log(aa.reduce((a,b)=>a+b)) // 12345