1.join()和split()
join()可選擇一個(gè)參數(shù)(數(shù)組轉(zhuǎn)字符串)
var arr = ["a", "b", "c", "e", "f"]
var res = arr.join() //
var res1 = arr.join("~") //
console.log(res)//a,b,c,e,f
console.log(res1)//a~b~c~e~f
console.log(arr)// ["a", "b", "c", "e"]
split()兩個(gè)參數(shù):1.必須選擇一個(gè)參數(shù) 2.可選。該參數(shù)可指定返回的數(shù)組的最大長(zhǎng)度。
將字符串以指定的分隔符分割成數(shù)組(字符串轉(zhuǎn)數(shù)組)
var str = "a,b,c,e,f"
var str1 = "a~b~c~e~f"
var res = str.split(",",3) //
var res1 = str1.split("~") //
console.log(res)//["a", "b", "c"]
console.log(res1)//["a", "b", "c", "e", "f"]
2.push()和pop()
push(): 可以接收任意數(shù)量的參數(shù),把它們逐個(gè)添加到數(shù)組末尾,并返回修改后數(shù)組的長(zhǎng)度捞蛋。
var arr = ["a","b","c"]
var res = arr.push("e","f")//5
console.log(arr)//["a", "b", "c", "e", "f"]
pop():數(shù)組末尾移除最后一項(xiàng),減少數(shù)組的 length 值柬姚,然后返回移除的項(xiàng)拟杉。
var arr = ["a", "b", "c", "e", "f"]
var res = arr.pop() // f
console.log(arr)// ["a", "b", "c", "e"]
3.foreach()和map()
foreach()參數(shù)自定義可以有三個(gè)參數(shù)如下
var arr = ["a", "b", "c", "e", "f"]
arr.forEach((item,index,a)=>{
console.log(item);//數(shù)組中的每一項(xiàng)
console.log(index);//數(shù)組中每一項(xiàng)的下表
console.log(a);//數(shù)組本身
} )
map()參數(shù)自定義可以有三個(gè)參數(shù)如下
這個(gè)方法需要在處理每一項(xiàng)item之后return返回參數(shù)
var arr = ["a", "b", "c", "e", "f"]
var res = arr.map((item,index,a)=>{
console.log(item);//數(shù)組中的每一項(xiàng)
console.log(index);//數(shù)組中每一項(xiàng)的下表
console.log(a);//數(shù)組本身
if(item=="b"){
return "B"
}else{
return item
}
} )
console.log("arr:",arr);//arr:["a", "b", "c", "e", "f"]
console.log("res:",res);res:["a", "B", "c", "e", "f"]
4.reduce()和reduceRight()
reduce()參數(shù)自定義可以有四個(gè)參數(shù)如下
這個(gè)方法需要在處理每一項(xiàng)item之后return返回參數(shù)
(reduceRight()的循環(huán)從最后一個(gè)開(kāi)始,其他相同)
init可選初始值
var arr = ["a", "b", "c", "e", "f"]
var init = "初始值"
arr.reduce((prev,item,index,a)=>{
console.log(prev)//數(shù)組中的前一項(xiàng)的值
console.log(item);//數(shù)組中的每一項(xiàng)的值
console.log(index);//數(shù)組中當(dāng)前項(xiàng)的下標(biāo)
console.log(a);//數(shù)組本身
return item
},init)
5.sort()
sort()方法比較的是把數(shù)組中每一項(xiàng)轉(zhuǎn)字符串后的值
var arr = ["f", "e", "c", "b", "a"]
var res = arr.sort()
console.log("arr:",arr);//arr:["a", "b", "c", "e", "f"]
console.log("res:",res);res:["a", "b", "c", "e", "f"]
sort()方法可以添加一個(gè)比較函數(shù)用來(lái)排序
這個(gè)函數(shù)可以自定義
function compare(value1, value2) {
if (value1 < value2) {
return -1;
} else if (value1 > value2) {
return 1;
} else {
return 0;
}
}
//var arr = [7,13,5,12,6]
var arr = ["7","13","5","12","6"]//對(duì)字符串無(wú)效
var res = arr.sort(compare)
console.log(res)//[5, 6, 7, 12, 13]
console.log(arr)// [5, 6, 7, 12, 13]
對(duì)字符串有效
function compare(value1,value2) {
var value1 = Number(value1)
var value2 = Number(value2)
if (value1 < value2) {
return -1;
} else if (value1 > value2) {
return 1;
} else {
return 0;
}
}
//var arr = [7,13,5,12,6]
var arr = ["7","13","5","12","6"]//對(duì)字符串有效
var res = arr.sort(compare)
console.log(res)// ["5", "6", "7", "12", "13"]//返回的還是字符串類型
console.log(arr)// ["5", "6", "7", "12", "13"]
6.shift()和unshift()
shift():刪除原數(shù)組第一項(xiàng)量承,并返回刪除元素的值搬设;如果數(shù)組為空則返回undefined 。
var arr = ["a", "b", "c", "e", "f"]
var res = arr.shift()
console.log(res)//a
console.log(arr)// [ "b", "c", "e","f",]
unshift:將參數(shù)添加到原數(shù)組開(kāi)頭撕捍,并返回?cái)?shù)組的長(zhǎng)度 拿穴。
var arr = ["a", "b", "c", "e", "f"]
var res = arr.unshift("1","a")
console.log(res)//6
console.log(arr)//["1", "a", "b", "c", "e", "f"]
7.reserver()
reserver()翻轉(zhuǎn)數(shù)組中的順序
var arr = ["a", "b", "c", "e", "f"]
var res = arr.reserver()
console.log(res)//["f", "e", "c", "b", "a"]
console.log(arr)//["f", "e", "c", "b", "a"]
8.concat()
concat() :將參數(shù)添加到原數(shù)組中。這個(gè)方法會(huì)先創(chuàng)建當(dāng)前數(shù)組一個(gè)副本忧风,然后將接收到的參數(shù)添加到這個(gè)副本的末尾默色,最后返回新構(gòu)建的數(shù)組。
在沒(méi)有給 concat()方法傳遞參數(shù)的情況下狮腿,它只是復(fù)制當(dāng)前數(shù)組并返回副本腿宰。
var arr = ["a", "b", "c", "e","d", "f"]
var res = arr.concat("g",["h","i"])
console.log(arr)// ["a", "b", "c", "d","e", "f"]
console.log(res)//["a", "b", "c", "e", "d","f", "g", "h", "i"]
//多維數(shù)組
var arr = ["a", "b", "c", "d",["e", "f"]]
var res = arr.concat("g",["h",["i","j"]])
console.log(arr)// ["a", "b", "c", "e", "f"]
console.log(res)//[ "a", "b", "c", ["e", "f"] ,"g","h",["i","j"] ]
9.slice()
slice():返回從原數(shù)組中指定開(kāi)始下標(biāo)到結(jié)束下標(biāo)之間的項(xiàng)組成的新數(shù)組呕诉。slice()方法可以接受一或兩個(gè)參數(shù),即要返回項(xiàng)的起始和結(jié)束位置吃度。
在只有一個(gè)參數(shù)的情況下甩挫, slice()方法返回從該參數(shù)指定位置開(kāi)始到當(dāng)前數(shù)組末尾的所有項(xiàng)。
如果有兩個(gè)參數(shù)椿每,該方法返回起始和結(jié)束位置之間的項(xiàng)伊者,但不包括結(jié)束位置的項(xiàng)。
var arr = ["a", "b", "c", "e", "f","g"]
var arr0 = arr.slice(1);
var arr1 = arr.slice(1,4);
var arr2 = arr.slice(1,-2);
var arr3 = arr.slice(-4,-1);
console.log(arr); //["a", "b", "c", "e", "f", "g"]
console.log(arr0); //["b", "c", "e", "f", "g"]
console.log(arr1); // ["b", "c", "e"]
console.log(arr2); // ["b", "c", "e"]
console.log(arr3); // ["c", "e", "f"]
10.splice()
splice():可以實(shí)現(xiàn)刪除间护、插入和替換方法亦渗,并且始終都會(huì)返回一個(gè)數(shù)組,該數(shù)組中包含從原始數(shù)組中刪除的項(xiàng)兑牡,如果沒(méi)有刪除任何項(xiàng)央碟,則返回一個(gè)空數(shù)組。
刪除:可以刪除任意數(shù)量的項(xiàng)均函,只需指定 2 個(gè)參數(shù):要?jiǎng)h除的第一項(xiàng)的位置和要?jiǎng)h除的項(xiàng)數(shù)亿虽。
var arr = ["a", "b", "c", "e", "f","g"]
var res = arr.splice(1,5)
console.log(res); // ["b", "c", "e", "f", "g"]
console.log(arr); // ["a"]
插入:只需提供 3 個(gè)參數(shù):起始位置、 0(要?jiǎng)h除的項(xiàng)數(shù))和要插入的項(xiàng)苞也。
var arr = ["a", "b", "c", "e", "f","g"]
var res = arr.splice(3,0,"h","i")
console.log(arr); // []
console.log(arr); // ["a", "b", "c", "h", "i", "e", "f", "g"]
替換:只需指定 3 個(gè)參數(shù):起始位置洛勉、要?jiǎng)h除的項(xiàng)數(shù)和要插入的任意數(shù)量的項(xiàng)。
(插入的項(xiàng)數(shù)不必與刪除的項(xiàng)數(shù)相等)
并且返回刪除的項(xiàng)
var arr = ["a", "b", "c", "d","e", "f","g"]
var res = arr.splice(3,2,"h","i")
console.log(res ); // ["d", "e"]
console.log(arr); // ["a", "b", "c", "h", "i", "f", "g"]
11.indexOf()和lastIndexOf()
indexOf()需要提供兩個(gè)參數(shù):
從數(shù)組的開(kāi)頭(位置 0)開(kāi)始向后查找如迟。
1.要查找的項(xiàng)
2.(可選的)表示查找起點(diǎn)位置的索引收毫。其中, 從數(shù)組的開(kāi)頭(位置 0)開(kāi)始向后查找殷勘。
lastIndexOf()也需要提供兩個(gè)參數(shù)(同上)此再,但是從數(shù)組的結(jié)尾開(kāi)始向前查找。
var arr = ["a", "b", "c", "d","e", "f","g"]
var res = arr.indexOf("c")
var res1 = arr.indexOf("d",2)
var res2 = arr.indexOf("d",4)
var res3 = arr.indexOf("d",5)
console.log(res); // 2
console.log(res1); // 3
console.log(res2); // -1
console.log(res3); // -1 表示沒(méi)有查找到
console.log(arr); // ["a", "b", "c", "d", "e", "f", "g"]
12.filter()
filter()函數(shù)滿足過(guò)濾條件組成的數(shù)組
注意: 不會(huì)對(duì)空數(shù)組進(jìn)行檢測(cè)玲销。
注意:不會(huì)改變?cè)紨?shù)組输拇。
var arr = ["a", "b", "c", "d","e", "f","g"]
var res = arr.filter((item,index,a)=>{
console.log(item);//數(shù)組中的每一項(xiàng)
console.log(index);//數(shù)組中每一項(xiàng)的下表
console.log(a);//數(shù)組本身
//console.log(this);//這個(gè)第四個(gè)參數(shù)不明白具體是做什么的
return item>"c"?true:false
} ,{ x:"這是X的值"})
console.log(arr); // ["a", "b", "c", "d", "e", "f", "g"]//不改變?cè)瓉?lái)的數(shù)組
console.log(res); // ["d", "e", "f", "g"]
13.every()和some()
every():判斷數(shù)組中每一項(xiàng)都是否滿足條件,只有所有項(xiàng)都滿足條件贤斜,才會(huì)返回true策吠。
var arr = [ "b", "c", "d","e", "f","g"]
var res = arr.every((item,index,a)=>{
console.log(item);//數(shù)組中的每一項(xiàng)
console.log(index);//數(shù)組中每一項(xiàng)的下表
console.log(a);//數(shù)組本身
return item>"a"
} ,{ x:"這是X的值"})
console.log(arr); // ["a", "b", "c", "d", "e", "f", "g"]//不改變?cè)瓉?lái)的數(shù)組
console.log(res); // true
some()判斷數(shù)組中是否存在滿足條件的項(xiàng),只要有一項(xiàng)滿足條件瘩绒,就會(huì)返回true猴抹。
var arr = [ "b", "c", "d","e", "f","g"]
var res = arr.some((item,index,a)=>{
console.log(item);//數(shù)組中的每一項(xiàng)
console.log(index);//數(shù)組中每一項(xiàng)的下表
console.log(a);//數(shù)組本身
return item>"f"
} ,{ x:"這是X的值"})
console.log(arr); // ["a", "b", "c", "d", "e", "f", "g"]//不改變?cè)瓉?lái)的數(shù)組
console.log(res); // true
- for in和for of
var arr = [ "b", "c", "d","e", "f","g"]
for(let item in arr){ // item為index,數(shù)組索引
console.log(item);
}
var arr = [{a:"1"},{b:"2"},{c:"3"}]
for(let item in arr){ // item為index,數(shù)組索引
console.log(item);
}
var arr = [ "b", "c", "d","e", "f","g"]
for(let item of arr){ // item為value
console.log(item); //a遍歷為每一項(xiàng)的鍵
}
var arr = [{a:"1"},{b:"2"},{c:"3"}]
for(let item of arr){ // item為value
console.log(item); //{a: "1"}遍歷為每一項(xiàng)
}