js数组的常用方法
//push()像数组的末尾添加一个或多个元素,并返回数组的新的长度
var a = ["周杰伦", "刘德华", "邓紫棋"]
var b = a.push("周杰伦22", "刘德华22", "邓紫棋22")
console.log(a) //["周杰伦", "刘德华", "邓紫棋","周杰伦22", "刘德华22", "邓紫棋22"]
console.log(b) //6
//pop()可以删除数组的最后一个元素,并将被删除的元素作为返回值返回
var c = ["邓紫棋", "周杰伦", "刘德华"]
var d = c.pop()
console.log(c) //["邓紫棋", "周杰伦"]
console.log(d) // 刘德华
//unshift()它能在数组前端添加任意个项并返回新数组的长度
var e = ["1", "2", "3"]
var f = e.unshift("4", "5")
console.log(e) // ["4", "5", "1", "2", "3"]
console.log(f) // 5
//shift可以删除数组的第一个元素,并将被删除的元素作为返回值返回
var p = ["1", "2", "3"]
var o = p.shift()
console.log(p) // ["2", "3"]
console.log(o) // 1
// slice(),可以用来从数组提取指定元素,该方法不会改变元素数组,而是将截取到的元素封装一个新的数组中返回
/*
参数
1.截取开始的位置的索引,包含开始索引
2.截取结束的位置的索引,不包含结束索引
第二个参数可以省略不写,此时会截取从开始索引往后的所有元素
索引可以传递一个负值,如果传的是个负值,则从后往前计算
*/
var arr = [1, 2, 3, 4, 5, 10];
var reac
react = arr.slice(4)
console.log(react) = arr.slice(1, 4)
/*
splice(index,删除的数量,切换的新值) 可以用于删除数组中的指定元素,里面三个参数
使用spclice()会影响到原数组,会将指定元素从原数组中删除
并将被删除的元素作为返回值返回
参数
第一个,表示开始位置的索引
第二个表示删除的数量,
第三个及以后,可以传递一些新的元素,这些元素将会自动插入到开始位置索引前面
*/
var ty = arr.splice(2, 2, "周杰伦", "邓紫棋")
console.log(ty)
console.log(arr)
//filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条
//件的所有元素。 filter() 不会对空数组进行检测。 filter() 不会改变原始数组。
//语法: array.filter(function(currentValue, index, arr), thisValue)
//currentValue:当前元素的值
// index:当前元素的索引值
//arr:当前元素属于的数组对象
// thisValue:对象作为该执行回调时使用,传递给函数,用作 "this" 的值。
//如果省略了 thisValue, "this"
//的值为 "undefined"
//案列:返回数组ages中所有元素都大于输入框指定数值的元素
//利用 filter 遍历出所有偶数:
let arr = [56, 15, 48, 3, 7];
let newARR = arr.filter(function(currentValue, index, arr) {
return currentValue % 2 === 0
})
console.log(newARR) //56,48
//concat()可以连接两个或多个数组,并将新的数组返回,该方法不会对原数组产生影响
var arr = ["周杰伦", "刘德华", "邓紫棋"]
var arr2 = ["爱钱", "爱财", "爱美女"]
var arr3 = arr.concat(arr2)
console.log(arr)
console.log(typeof arr)
console.log(arr3)
console.log(typeof arr3)
//2.join()该方法可以将数组转换魏一个字符串 ,类似的方法还有toString()
//该方法不会对原数组产生影响,而是将转换后的字符串作为结果返回
//在join()中可以指定一个字符串,作为参数,这个字符串将会称为数组中的元素的连接符
//如果不指定连接符,则默认使用“,”号作为连接符
var arr4 = arr.join("&&&")
console.log(arr4)
console.log(typeof arr4) //string
//reverse() 重排序方法,会反转数组的顺序
var arr = ["周杰伦", "刘德华", "邓紫棋"]
var arr5 = arr.reverse()
console.log(arr5) //["邓紫棋", "刘德华", "周杰伦"]
/*
sort() 根据unicode编码来排序
所以对数字进排序时,可能会的到错误的结果
我们可以自己看来指定排序的规则
我们可以在sort()添加一个回调函数,来指定排序规则
回调函数中需要定义两个形参
浏览器将会分别使用数组中的元素作为实参去调用回调函数
使用哪个元素调用不确定,但是肯定的是在数组中a一定在b前面,
浏览器会根据回调函数的返回值来决定元素的顺序
如果返回一个大于0的值,则元素会交换位置
如果返回一个小于0的值。则元素位置不变
如果返回一个0,则认为两个元素相等,也不交换位置
sort() 如果需要升序排序,返回a-b
如果需要降序排列。则返回B-a
*/
var a = [1, 2, 3, 5, 4, 12, 11]
a.sort(function(a, b) {
if (a > b) {
return 1
}
if (a < b) {
return -1
} else {
return 0
}
})
console.log(a) //1, 2, 3, 4, 5, 11, 12