js數(shù)組方法

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

  1. 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)
   }

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市锁荔,隨后出現(xiàn)的幾起案子蟀给,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,835評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件坤溃,死亡現(xiàn)場(chǎng)離奇詭異拍霜,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)薪介,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,900評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)越驻,“玉大人汁政,你說(shuō)我怎么就攤上這事∽号裕” “怎么了记劈?”我有些...
    開(kāi)封第一講書人閱讀 156,481評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)并巍。 經(jīng)常有香客問(wèn)我目木,道長(zhǎng),這世上最難降的妖魔是什么懊渡? 我笑而不...
    開(kāi)封第一講書人閱讀 56,303評(píng)論 1 282
  • 正文 為了忘掉前任刽射,我火速辦了婚禮,結(jié)果婚禮上剃执,老公的妹妹穿的比我還像新娘誓禁。我一直安慰自己,他們只是感情好肾档,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,375評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布摹恰。 她就那樣靜靜地躺著,像睡著了一般怒见。 火紅的嫁衣襯著肌膚如雪俗慈。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 49,729評(píng)論 1 289
  • 那天遣耍,我揣著相機(jī)與錄音闺阱,去河邊找鬼。 笑死配阵,一個(gè)胖子當(dāng)著我的面吹牛馏颂,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播棋傍,決...
    沈念sama閱讀 38,877評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼救拉,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了瘫拣?” 一聲冷哼從身側(cè)響起亿絮,我...
    開(kāi)封第一講書人閱讀 37,633評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后派昧,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體黔姜,經(jīng)...
    沈念sama閱讀 44,088評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,443評(píng)論 2 326
  • 正文 我和宋清朗相戀三年蒂萎,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了秆吵。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,563評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡五慈,死狀恐怖纳寂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情泻拦,我是刑警寧澤毙芜,帶...
    沈念sama閱讀 34,251評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站争拐,受9級(jí)特大地震影響腋粥,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜架曹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,827評(píng)論 3 312
  • 文/蒙蒙 一隘冲、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧音瓷,春花似錦对嚼、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,712評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至杏愤,卻和暖如春靡砌,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背珊楼。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,943評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工通殃, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人厕宗。 一個(gè)月前我還...
    沈念sama閱讀 46,240評(píng)論 2 360
  • 正文 我出身青樓画舌,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親已慢。 傳聞我的和親對(duì)象是個(gè)殘疾皇子曲聂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,435評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容