目錄
宣告陣列
1. 常規方式
2. 簡潔方式
3.字面
Array 物件方法
1. forEach
2. map
3. concat
4. push
5. unshift
6. pop
7. shift
8. splice
9 . slice
10. join
11. every
12. filter
13. indexOf
14. reduce
15. reverse
16. sort
17. toString
18. at
19. find
20. some
首頁 web前端 js教程 總結20個常見的JavaScript數組操作

總結20個常見的JavaScript數組操作

Apr 20, 2023 pm 03:43 PM
前端

JavaScript中的Array物件與其他程式語言中的陣列一樣,是一組資料的集合。在JavaScript中,陣列裡面的資料可以是不同類型的,並且具有用於執行陣列常見操作的方法。

宣告陣列

有三種不同的宣告方式

1. 常規方式

const hobbys = new Array()
hobbys[0] = 'Basketball'
hobbys[1] = 'Badminton'
hobbys[2] = 'swimming'
console.log(hobbys)
// [ 'Basketball', 'Badminton', 'swimming' ]
登入後複製

2. 簡潔方式

const hobbys = new Array('Basketball', 'Badminton','swimming')
console.log(hobbys)
// [ 'Basketball', 'Badminton', 'swimming' ]
登入後複製

3.字面

const hobbys = ['Basketball','Badminton','swimming']
console.log(hobbys)
// [ 'Basketball', 'Badminton', 'swimming' ]
登入後複製

Array 物件方法

1. forEach

#forEach() 方法用於呼叫陣列的每個元素,並將元素傳遞給回呼函數。沒有傳回值,本質上等同於 for 循環,對每一項執行 function 函數。不會改變原數組。

// currentValue:必需,当前元素 index:可选,当前元素的索引值 arr:可选,当前元素所属的数组对象。
array.forEach(function(currentValue, index, arr))
登入後複製
let array = ['a', 'b', 'c']
let func = (currentValue, index, arr) => {
  currentValue += 's'  
  console.log('currentValue:' + currentValue + ' index:' + index + ' arr:' + arr)
}
array.forEach(func)
console.log(array)

// 控制台输出:
// currentValue:as index:0 arr:a,b,c
// currentValue:bs index:1 arr:a,b,c
// currentValue:cs index:2 arr:a,b,c
// [ 'a', 'b', 'c' ]
登入後複製

2. map

透過指定函數處理陣列的每個元素,並傳回處理後的陣列。

map() 方法傳回一個新數組,數組中的元素為原始數組元素呼叫函數處理後的值。方法依照原始數組元素順序依序處理元素。不會改變原數組。

// currentValue:必须,当前元素的值  index:可选,当前元素的索引值 arr:可选,当前元素属于的数组对象
array.map(function(currentValue,index,arr))
登入後複製
let array = [1, 2, 3, 4, 5]
let result = array.map((item) => { 
  return item += 5
})
console.log(array)
console.log(result)
// [ 1, 2, 3, 4, 5 ]
// [ 6, 7, 8, 9, 10 ]
登入後複製

3. concat

JavaScript中的 concat() 方法用來連接兩個或更多的數組,並傳回結果。

// array1, array2, ..., arrayN 必需,该参数可以是具体的值,也可以是数组对象,可以是任意多个
array1.concat(array2,array3,...,arrayN)
登入後複製
const array1 = ['a', 'b', 'c']
const array2 = ['d', 'e', 'f']
const array3 = array1.concat(array2)
console.log(array3)
const array4 = array1.concat('123')
console.log(array4)
// [ 'a', 'b', 'c', 'd', 'e', 'f' ]
// [ 'a', 'b', 'c', '123' ]
登入後複製

4. push

Javascript數組中的push() 方法用來在數組的末尾添加一個或更多元素,並返回新的長度。

let fruits = ["Banana", "Orange", "Apple", "Mango"]
let length = fruits.push("Kiwi")
console.log(fruits)
console.log(length)
// [ 'Banana', 'Orange', 'Apple', 'Mango', 'Kiwi' ]
// 5
登入後複製

5. unshift

unshift() 方法可在陣列的開頭新增一個或更多元素,並傳回新的長度。

let fruits = ["Banana", "Orange", "Apple", "Mango"]
let length = fruits.unshift("Lemon", "Pineapple")
console.log(fruits)
console.log(length)
// [ 'Lemon', 'Pineapple', 'Banana', 'Orange', 'Apple', 'Mango' ]
// 6
登入後複製

6. pop

pop() 方法用於刪除陣列的最後一個元素並傳回刪除的元素。

let sites = ['Google', 'Runoob', 'Taobao', 'Zhihu', 'Baidu']
let result = sites.pop()
console.log(sites)
console.log(result)
// [ 'Google', 'Runoob', 'Taobao', 'Zhihu' ]
// Baidu
登入後複製

7. shift

shift() 方法用來把陣列的第一個元素從其中刪除,並傳回第一個元素的值

let fruits = ["Banana", "Orange", "Apple", "Mango"];
let result = fruits.shift()
console.log(fruits)
console.log(result)
// [ 'Orange', 'Apple', 'Mango' ]
// Banana
登入後複製

8. splice

splice() 方法用於新增或刪除陣列中的元素,並傳回刪除的元素陣列

// 参数 Values: index: 必需,规定从何处添加/删除元素
// howmany: 可选,规定应该删除多少元素 必须是数字,但可以是 "0"
// item1, ..., itemX 可选,要添加到数组的新元素
array.splice(index,howmany,item1,.....,itemX)
登入後複製
let fruits = ["Banana", "Orange", "Apple", "Mango"]
let result = fruits.splice(1, 2, "Lemon", "Kiwi")
console.log(fruits)
console.log(result)
// [ 'Banana', 'Lemon', 'Kiwi', 'Mango' ]
// [ 'Orange', 'Apple' ]
登入後複製

9 . slice

slice() 方法可從現有的陣列中傳回選定的元素。也可提取字串的某個部分,並以新的字串傳回被提取的部分。不會改變原數組。

// start: 可选,规定从何处开始选取 若为负值,表示从原数组中的倒数第几个元素开始提取
// end: 可选,规定从何处结束选取 如果没有指定该参数,那么切分的数组包含从start到数组结束的所有元素
array.slice(start, end)
登入後複製
let fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"]
let result1 = fruits.slice(1, 3)
let result2 = fruits.slice(2)
console.log(fruits)
console.log(result1)
console.log(result2)
// [ 'Banana', 'Orange', 'Lemon', 'Apple', 'Mango' ]
// [ 'Orange', 'Lemon' ]
// [ 'Lemon', 'Apple', 'Mango' ]
登入後複製

10. join

join() 方法可將所有陣列元素結合為一個字串。它的行為類似toString(),但是您也可以規定分隔符號

// separator: 可选,指定要使用的分隔符 如果省略该参数,则使用逗号作为分隔符
array.join(separator)
登入後複製
let fruits = ["Banana", "Orange", "Apple", "Mango"];
let energy1 = fruits.join();
let energy2 = fruits.join('-');
console.log(energy1)
console.log(energy2)
// Banana,Orange,Apple,Mango
// Banana-Orange-Apple-Mango
登入後複製

11. every

every() 方法用於偵測陣列所有元素是否都符合指定條件(透過函數提供)。

array.every(function(currentValue,index,arr))
登入後複製
let ages = [32, 33, 16, 40]
let nums = [32, 33, 19, 40]
function checkAdult(age) {
  return age >= 18
}
function checkNums(num) {
  return num >= 18
}
// 16不满足大于18,故结果false
let result1 = ages.every(checkAdult)
// 每一项都满足条件,故结果true
let result2 = nums.every(checkNums)
console.log(result1)
console.log(result2)
// false
// true
登入後複製

12. filter

filter() 方法建立一個新的數組,新數組中的元素是透過檢查指定數組中符合條件的所有元素。不會改變原數組。

array.filter(function(currentValue,index,arr), thisValue)
登入後複製
let ages = [32, 33, 16, 40];
function checkAdult(age) {
  return age >= 18;
}
let result = ages.filter(checkAdult)
console.log(result)
// [ 32, 33, 40 ]
登入後複製

13. indexOf

#indexOf() 方法可傳回某個指定的字串值在字串中首次出現的位置。沒有找到會回傳-1

// searchvalue: 必需。规定需检索的字符串值。
// start: 可选的整数参数。规定在字符串中开始检索的位置。值:0~array.length-1
string.indexOf(searchvalue,start)
登入後複製
let str = "Hello world, welcome to the universe.";
// 输出w所在的下标索引13(空格也算),没有找到会返回-1
let n = str.indexOf("welcome");
console.log(n)
console.log(str[n])
// 13
// w
登入後複製

14. reduce

reduce() 方法接收一個函數為累加器,陣列中的每個值(從左到右)開始縮減,最終計算為一個值。

array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
登入後複製
let numbers = [2, 3, 5, 6]
function getSum(total, num) {
  return total + num
}
let result = numbers.reduce(getSum, 0)
console.log(result)
// 16
登入後複製

15. reverse

reverse() 方法用來顛倒陣列中元素的順序。會改變原數組,並傳回改變順序的數組。

let fruits = ["Banana", "Orange", "Apple", "Mango"]
let resut = fruits.reverse()
console.log(fruits)
console.log(resut)
// [ 'Mango', 'Apple', 'Orange', 'Banana' ]
// [ 'Mango', 'Apple', 'Orange', 'Banana' ]
登入後複製

16. sort

sort() 方法用於對陣列的元素進行排序。排序順序可以是字母或數字,並按升序或降序。

// sortfunction: 可选。规定排序顺序。必须是函数。
array.sort(sortfunction)
登入後複製
let fruits = ["Banana", "Orange", "Apple", "Mango"]
let ages = [9, 3, 4, 5, 7, 10]
// 升序
let agesFunAsc = function (ag1,ag2) {
  return ag1 - ag2
}
// 降序
let agesFunDes= function (ag1,ag2) {
  return -(ag1 - ag2)
}
fruits.sort()
ages.sort(agesFunAsc)
console.log(fruits)
console.log(ages)
ages.sort(agesFunDes)
console.log(ages)
// [ 'Apple', 'Banana', 'Mango', 'Orange' ]
// [ 3, 4, 5, 7, 9, 10 ]
// [ 10, 9, 7, 5, 4, 3 ]
登入後複製

17. toString

toString() 方法用來把數字轉換成字串。

number.toString(radix)
登入後複製
let num = 15
let n = num.toString()
// 也可以使用不同的进制把一个数字转换为字符串
// 2进制
let b = num.toString(2);
// 8进制
let c = num.toString(8);
// 16进制
let d = num.toString(16);
console.log(n)
console.log(b)
console.log(c)
console.log(d)
// 15
// 1111
// 17
// f
登入後複製

18. at

at()方法接受整數值並傳回at索引的值,正整數和負整數皆可。負整數表示從陣列的最後一項開始倒數。

array.at(index)
登入後複製
let str = 'helso word'
let item1 = str.at(2)
let item2 = str.at(-1)
console.log(item1)
console.log(item2)
// l
// d
登入後複製

19. find

find() 方法傳回通過測試(函數內判​​斷)的陣列的第一個元素的值。

array.find(function(currentValue, index, arr),thisValue)
登入後複製
let ages = [3, 10, 18, 20];
function checkAdult(age) {
  return age >= 18;
}
let value = ages.find(checkAdult)
console.log(value)
// 18
登入後複製

20. some

some() 方法用來偵測陣列中的元素是否符合指定條件(函數提供)。

array.some(function(currentValue,index,arr),thisValue)
登入後複製
let ages = [3, 10, 19, 20];
function checkAdult(age) {
  return age > 18;
}
let result = ages.some(checkAdult)
console.log(result)
// true
登入後複製
#

以上是總結20個常見的JavaScript數組操作的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1665
14
CakePHP 教程
1424
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
一文聊聊Node中的記憶體控制 一文聊聊Node中的記憶體控制 Apr 26, 2023 pm 05:37 PM

基於無阻塞、事件驅動建立的Node服務,具有記憶體消耗低的優點,非常適合處理海量的網路請求。在海量請求的前提下,就需要考慮「記憶體控制」的相關問題了。 1. V8的垃圾回收機制與記憶體限制 Js由垃圾回收機

探討如何在Vue3中撰寫單元測試 探討如何在Vue3中撰寫單元測試 Apr 25, 2023 pm 07:41 PM

在當今前端開發中,Vue.js 已經成為了一個非常流行的框架。隨著 Vue.js 的不斷發展,單元測試變得越來越重要。今天,我們將探討如何在 Vue.js 3 中編寫單元測試,並提供一些最佳實踐和常見的問題及解決方案。

深入聊聊Node中的File模組 深入聊聊Node中的File模組 Apr 24, 2023 pm 05:49 PM

文件模組是對底層文件操作的封裝,例如文件讀寫/打開關閉/刪除添加等等文件模組最大的特點就是所有的方法都提供的**同步**和**異步**兩個版本,具有sync 字尾的方法都是同步方法,沒有的都是異

如何解決跨域?常見解決方案淺析 如何解決跨域?常見解決方案淺析 Apr 25, 2023 pm 07:57 PM

跨域是開發中常會遇到的場景,也是面試中常會討論的問題。掌握常見的跨域解決方案及其背後的原理,不僅可以提高我們的開發效率,還能在面試中表現的更加

PHP與Vue:完美搭檔的前端開發利器 PHP與Vue:完美搭檔的前端開發利器 Mar 16, 2024 pm 12:09 PM

PHP與Vue:完美搭檔的前端開發利器在當今網路快速發展的時代,前端開發變得愈發重要。隨著使用者對網站和應用的體驗要求越來越高,前端開發人員需要使用更有效率和靈活的工具來創建響應式和互動式的介面。 PHP和Vue.js作為前端開發領域的兩個重要技術,搭配起來可以稱得上是完美的利器。本文將探討PHP和Vue的結合,以及詳細的程式碼範例,幫助讀者更好地理解和應用這兩

深入了解Node中的Buffer 深入了解Node中的Buffer Apr 25, 2023 pm 07:49 PM

一開始的時候 JS 只在瀏覽器端運行,對於 Unicode 編碼的字串容易處理,但對於二進位和非 Unicode 編碼的字串處理困難。並且二進制是電腦最底層的資料格式,視訊/音訊/程式/網路包

Django是前端還是後端?一探究竟! Django是前端還是後端?一探究竟! Jan 19, 2024 am 08:37 AM

Django是一個由Python編寫的web應用框架,它強調快速開發和乾淨方法。儘管Django是web框架,但要回答Django是前端還是後端這個問題,需要深入理解前後端的概念。前端是指使用者直接和互動的介面,後端是指伺服器端的程序,他們透過HTTP協定進行資料的互動。在前端和後端分離的情況下,前後端程式可以獨立開發,分別實現業務邏輯和互動效果,資料的交

如何使用 Go 語言進行前端開發? 如何使用 Go 語言進行前端開發? Jun 10, 2023 pm 05:00 PM

隨著網路技術的發展,前端開發變得日益重要。尤其是行動端設備的普及,更需要高效率、穩定、安全又易於維護的前端開發技術。而作為一門快速發展的程式語言,Go語言已經被越來越多的開發者所使用。那麼,使用Go語言進行前端開發行得通嗎?接下來,本文將為你詳細說明如何使用Go語言進行前端開發。先來看看為什麼要使用Go語言進行前端開發。很多人認為Go語言是一門

See all articles