1.数组转字符串
//不改变数组
var week = ['monday', 'tuesday', 'friday', 'sunday', 'friday']
console.log('转换为字符串', String(week))
2.将数组元素放入一个字符串
// 同样的不改变原数组
var arr=[1,2,3];
var str=arr.join();//默认是逗号,也可以自定义连接符
console.log(str); //1,2,3
console.log(arr); //[1,2,3]
3.数组拼接(concat)
//
// 数组拼接
// 不改变原数组
var arrNum = [1, 2, 3]
var newArr = arrNum.concat(4, [5, 6])
console.log('新数组', newArr) // 123456
console.log('原数组', arrNum) // 123
4.数组选取slice
// slice 截取数组
/* slice() 方法返回一个新的数组对象,这一对象是一个由 begin 和 end
决定的原数组的浅拷贝(包括 begin,不包括end)。原始数组不会被改变 */
var numbers = [4, 9, 16, 25]
console.log('截取', numbers.slice(0, 2)) // 4,9
5.返回某个指定的字符串值在字符串中首次出现的位置(indexOf),最后出现的位置(lastIndexOf)
// indexOf获取位置
// 返回数组中可以找到一个给定元素的第一个索引值,
// 如果不存在,返回-1
var week = ['monday', 'tuesday', 'friday', 'sunday', 'friday']
console.log(week.indexOf('saturday')) //-1
console.log(week.indexOf('friday')) //2
console.log(week.lastIndexOf('friday')) //4
6.遍历数组
var arr = new Array()
arr = [1, 2, 3, 4, 5]
// console.log(arr)
// 遍历数组元素
// item当前元素
// index当前元素索引
arr.forEach((item, index) => {
console.log(item, index)
})
7.every,some
var arr = new Array()
arr = [1, 2, 3, 4, 5]
function check(num) {
return num > 1
}
// 用来判断所有数组元素 都满足一个条件,返回true或false
// every() 不会对空数组进行检测。
// every() 不会改变原始数组。
console.log(arr.every(check)) // false
// some() 不会对空数组进行检测。
// some() 不会改变原始数组。
// 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
// 如果没有满足条件的元素,则返回false。
console.log(arr.some(check)) // true
8.sort排序
// sort()
// 对数组的元素进行排序,并返回数组
// 会改变数组
arr.sort((a, b) => a - b)
console.log('排序正序', arr)
arr.sort((a, b) => b - a)
console.log('排序倒序', arr)
9.map该方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值
// map() 方法按照原始数组元素顺序依次处理元素。
// map() 不会对空数组进行检测。
// map() 不会改变原始数组。
// Math.sqrt返回一个正平方根
var numbers = [4, 9, 16, 25]
console.log('开平方', numbers.map(Math.sqrt))
10.filter过滤
// filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素
// filter() 不会对空数组进行检测。
// 注意: filter() 不会改变原始数组
// array.filter(function(currentValue,index,arr), thisValue)
var numbers = [4, 9, 16, 25]
function chooseNum(num) {
return num <= 9
}
console.log('过滤', numbers.filter(chooseNum))
11.splice添加删除数组元素
// 改变原数组
// splice() 方法通过删除或替换现有元素或者原地添加新的元素来修改数组,
// 并以数组形式返回被修改的内容。
var aryNum = [1, 2, 3]
var newArr1 = arrNum.splice(0, 2)
var newArr2 = arrNum.splice(0, 1)
console.log('first', newArr1) //1,2
console.log('second', newArr2) // 1
console.log('final', arrNum) // []
12.reverse翻转数组
// 会改变原数组
var aryNum1 = [1, 2, 3]
var newOne = aryNum1.reverse()
console.log('反转后的数组', newOne)
13.push向数组末尾添加一个或多个元素,并返回新的长度
// 会改变原数组
var aryNum1 = [1, 2, 3]
var arrThree = aryNum1.push(4)
console.log('新数组的长度', arrThree)
console.log('添加元素后的数组', aryNum1)
14.pop删除并返回最后一个元素值
// 会改变原数组
var arrNum2 = [1, 2, 3]
var newTwo = arrNum2.pop()
console.log('被删掉的最后一个元素', newTwo)
console.log('改变后的数组', arrNum2)
15.shift删除并返回第一个元素值
// 删除并返回第一个元素值
// 会改变原数组
var arrNum3 = [1, 2, 3]
var newFour = arrNum3.shift()
console.log('被删掉的第一个元素', newFour)
console.log('改变的数组', arrNum3)
16.unshift向数组开头添加一个或多个元素
// 改变数组
var arrNum4 = [1, 2, 3]
var newFive = arrNum4.unshift(0)
console.log('头添加后的长度', newFive)
console.log('改变的数组', arrNum4)
17.reduce()接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值
//array.reduce(function(total,currentValue,currentIndex,arr),initialValue)
// total初始值
// currentValue当前元素
// 当前元素索引 currentValue
// arr当前元素所属数组对象
// initialValue初始值
// 数组的reduce方法
var Numbers = [1, 6, 9, 15]
function getSum(total, num) {
return total + num
}
console.log(Numbers.reduce(getSum, 0)) //getsum+0
console.log(Numbers.reduce(getSum, 1)) //getsum+1