JS常用處理數組的方法

一、概述
join( ) ————————數組轉字符串
split( ) ———————–字符串轉數組
push( ) ———————-將數據添加到數組尾部
pop( ) ———————–數組末尾移除最后一項
shift( ) ———————–刪除原數組第一項
unshift( ) ——————–將數據添加到數組頭部
sort( ) ————————按升序排列數組項
reverse( ) ——————–反轉數組項的順序
concat( ) ——————–多個數組合并,原數組不變
slice( ) ———————–返回開始下標到結束下標之間的項組成的新數組,原數組不變
splice( ) ———————-從數組中添加/刪除項目,然后返回被刪除的項目,改變原數組
二、定義和用法
1、join()

  • 定義和用法
    join() 方法用于把數組中的所有元素放入一個字符串。
    元素是通過指定的分隔符進行分隔的。
  • 語法
    array.join(separator)
    separator:可選。指定要使用的分隔符。如果省略該參數,則使用逗號作為分隔符。
  • 返回值
    join() 返回一個字符串。該字符串是通過把 array的每個元素轉換為字符串,然后把這些字符串連接起來,在兩個元素之間插入 separator 字符串而生成的。
<script type="text/javascript">

var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"

console.log(arr.join()) //George,John,Thomas

</script>
<script type="text/javascript">

var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"

console.log(arr.join(".")) //George.John.Thomas

</script>

2、concat()

  • 定義和用法
    concat() 方法用于連接兩個或多個數組。
    該方法不會改變現有的數組,而僅僅會返回被連接數組的一個副本。
  • 語法
    array.concat(arrayX,arrayX,arrayX)
    arrayX:必需。該參數可以是具體的值,也可以是數組對象。可以是任意多個。
  • 返回值
    concat() 返回一個新的數組
  • 實例
<script type="text/javascript">

var a = [1,2,3];
console.log(a.concat(4,5)); //[1,2,3,4,5]

</script>

<script type="text/javascript">

var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"

var arr2 = new Array(3)
arr2[0] = "James"
arr2[1] = "Adrew"
arr2[2] = "Martin"

console.log(arr.concat(arr2)) //[George,John,Thomas,James,Adrew,Martin]

</script>

<script type="text/javascript">

var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"

var arr2 = new Array(3)
arr2[0] = "James"
arr2[1] = "Adrew"
arr2[2] = "Martin"

var arr3 = new Array(2)
arr3[0] = "William"
arr3[1] = "Franklin"

console.log(arr.concat(arr2,arr3)) //[George,John,Thomas,James,Adrew,Martin,William,Franklin]

</script>

3、pop()

  • 定義和用法
    pop() 方法用于刪除并返回數組的最后一個元素。
  • 語法
    array.pop()
  • 返回值
    pop() 返回數組的最后一個元素
  • 說明
    pop() 方法將刪除 arrayObject 的最后一個元素,把數組長度減 1,并且返回它刪除的元素的值。如果數組已經為空,則 pop() 不改變數組,并返回 undefined 值。
  • 實例
<script type="text/javascript">

var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"

console.log(arr) //[George,John,Thomas]

console.log(arr.pop()) //[Thomas]

console.log(arr) //[George,John]
</script>

4、shift()

  • 定義和用法
    shift() 方法用于刪除并返回數組的第一個元素。
  • 語法
    array.shift()
  • 返回值
    shift() 返回數組的第一個元素
  • 說明
    shift() 方法將刪除 arrayObject 的第一個元素,把數組長度減 1,并且返回它刪除的元素的值。如果數組已經為空,則 shift() 不改變數組,并返回 undefined 值。
  • 實例
<script type="text/javascript">

var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"

console.log(arr) //[George,John,Thomas]

console.log(arr.shift()) //[George]

console.log(arr) //[John,Thomas]
</script>

5、push()

  • 定義和用法
    push() 方法可向數組的末尾添加一個或多個元素,并返回新的長度。
    元素是通過指定的分隔符進行分隔的。
  • 語法
    array.push(newelement1,newelement2,…,newelementX)
    newelement1:必需。要添加到數組的第一個元素。
    newelement2: 可選。要添加到數組的第二個元素。
    newelementX: 可選。可添加多個元素。
  • 返回值
    push() 把指定的值添加到數組后的新長度。
  • 實例
<script type="text/javascript">

var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"

console.log(arr)  //[George,John,Thomas]
console.log(arr.push("James")) //4
console.log(arr) //[George,John,Thomas,James]

</script>

6、unshift()

  • 定義和用法
    push() 方法可向數組的開頭添加一個或更多元素,并返回新的長度。
    元素是通過指定的分隔符進行分隔的。
  • 語法
    array.unshift(newelement1,newelement2,…,newelementX)
    newelement1:必需。要添加到數組的第一個元素。
    newelement2: 可選。要添加到數組的第二個元素。
    newelementX: 可選。可添加多個元素。
  • 返回值
    unshift() 把指定的值添加到數組后的新長度。
  • 實例
<script type="text/javascript">

var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"

console.log(arr)  //[George,John,Thomas]
console.log(arr.unshift("James")) //4
console.log(arr) //[James,George,John,Thomas]

</script>

7、reverse()

  • 定義和用法
    reverse() 方法用于顛倒數組中元素的順序。
    元素是通過指定的分隔符進行分隔的。
  • 語法
    array.reverse()
  • 返回值
    reverse() 沒有返回值,該方法會改變原來的數組,而不會創建新的數組
  • 實例
<script type="text/javascript">

var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
console.log(arr) //["George", "John", "Thomas"]
arr.reverse()
console.log(arr) // ["Thomas", "John", "George"]

</script>

8、slice()

  • 定義和用法
    slice() 方法可從已有的數組中返回選定的元素。
  • 語法
    array.slice(start,end)
    start:必需。規定從何處開始選取。如果是負數,那么它規定從數組尾部開始算起的位置。也就是說,-1 指最后一個元素,-2 指倒數第二個元素,以此類推。
    end:可選。規定從何處結束選取。該參數是數組片斷結束處的數組下標。如果沒有指定該參數,那么切分的數組包含從 start 到數組結束的所有元素。如果這個參數是負數,那么它規定的是從數組尾部開始算起的元素。
  • 返回值
    slice() 返回一個新的數組
  • 說明
    請注意,該方法并不會修改數組,而是返回一個子數組。
  • 實例
<script type="text/javascript">

var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"

console.log(arr) //[George,John,Thomas]
console.log(arr.slice(1)) // [John,Thomas]
console.log(arr) // [George,John,Thomas]

</script>
<script type="text/javascript">

var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"

console.log(arr) //[George,John,Thomas,James,Adrew,Martin]
console.log(arr.slice(2,4)) // [Thomas,James]
console.log(arr) //[George,John,Thomas,James,Adrew,Martin]

</script>

9、splice()

  • 定義和用法
    splice() 方法向/從數組中添加/刪除項目,然后返回被刪除的項目。
    該方法會改變原始數組。
  • 語法
    array.splice(index,howmany,item1,…,itemX)
    index:必需。整數,規定添加/刪除項目的位置,使用負數可從數組結尾處規定位置。
    howmany:必需。要刪除的項目數量。如果設置為 0,則不會刪除項目。
    item1, …, itemX:可選。向數組添加的新項目。
  • 返回值
    splice() 包含被刪除項目的新數組,如果有的話。
  • 實例
<script type="text/javascript">

var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"

console.log(arr) //[George,John,Thomas,James,Adrew,Martin]
arr.splice(2,0,"William")
console.log(arr) //[George,John,William,Thomas,James,Adrew,Martin]

</script>
<script type="text/javascript">

var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"

console.log(arr) //[George,John,Thomas,James,Adrew,Martin]
arr.splice(2,1,"William")
console.log(arr) // [George,John,William,James,Adrew,Martin]

</script>

<script type="text/javascript">

var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"

console.log(arr) //[George,John,Thomas,James,Adrew,Martin]
arr.splice(2,3,"William")
console.log(arr) // [George,John,William,Martin]

</script>

10、toString()

  • 定義和用法
    toString() 方法可把數組轉換為字符串,并返回結果。
    該方法與沒有參數的 join() 方法返回的字符串相同。

11、sort()

  • 定義和用法
    此方法接收一個函數作為參數。它對數組的元素進行排序并返回它。也可以使用含有參數的sort()方法進行排序。
const arr = [5, 4, 3, 2, 1]
arr.sort((a, b) => a - b)
//  -------> Output : [1, 2, 3, 4, 5]
arr.sort((a, b) => b - a)
//-------> Output : [5, 4, 3, 2, 1]

12、includes()

  • 定義和用法
    此方法用于判斷字符串是否包含指定的子字符串。如果找到匹配的字符串則返回 true,否則返回 false。

譯者注:includes() 方法區分大小寫。

const arr = [1, 2, 3, 4, 5]
arr.includes(3)
// -------> Output : true
arr.includes(8)
// -------> Output : false

13、forEach()

  • 定義和用法
    此方法用于調用數組的每個元素。并將元素傳遞給回調函數。

譯者注: forEach() 對于空數組是不會執行回調函數的。

const arr = [  { id: 1, name: "john" },  
{ id: 2, name: "Ali" },  { id: 3, name: "Mass" },]
arr .forEach(element => console.log(element.name))
//-------> Output : john
//                  Ali
//                  Mass

14、map()

  • 定義和用法
    該方法返回一個新數組,數組中的元素為原始數組元素調用函數處理后的值。它按照原始數組元素順序依次處理元素。

譯者注:map() 不會對空數組進行檢測;map() 不會改變原始數組。

const arr = [5, 4, 3, 2, 1]
arr.map(x => x * x)
//-------> Output : 25
//                  16
//                  9
//                  4
//                  1  
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,321評論 6 543
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,559評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,442評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,835評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,581評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,922評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,931評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,096評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,639評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,374評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,591評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,104評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,789評論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,196評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,524評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,322評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,554評論 2 379

推薦閱讀更多精彩內容