」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > JavaScript 陣列方法:綜合指南

JavaScript 陣列方法:綜合指南

發佈於2024-11-07
瀏覽:702

JavaScript Array Methods: A Comprehensive Guide

数组是 JavaScript 中最基本的数据结构之一。使用数组,您可以在单个变量中存储多个值。 JavaScript 提供了许多内置方法来操作数组,使它们具有令人难以置信的通用性。在这篇文章中,我们将探讨所有内置数组方法以及如何在 JavaScript 项目中有效地使用它们。

核心方法

forEach()

forEach() 方法允许您迭代数组并为数组中的每个元素执行一次提供的函数。这是循环数组的简单方法。

const array = [1, 2, 3, 4, 5];

array.forEach((element) => {
  console.log(element);
});

地图()

map() 方法创建一个新数组,其中填充了对数组中每个元素调用所提供函数的结果。它通常用于转换数据。

const array = [1, 2, 3, 4, 5];

const doubled = array.map((element) => element * 2);

console.log(doubled); // [2, 4, 6, 8, 10]

筛选()

filter() 方法创建一个新数组,其中包含通过所提供函数实现的测试的所有元素。当您需要根据条件从数组中过滤掉某些元素时,它非常有用。

const array = [1, 2, 3, 4, 5];

const evenNumbers = array.filter((element) => element % 2 === 0);

console.log(evenNumbers); // [2, 4]

减少()

reduce()方法对数组的每个元素执行reducer函数,产生单个输出值。它通常用于对值求和、累加总计或将数组合并为单个值。

const array = [1, 2, 3, 4, 5];

const sum = array.reduce((accumulator, currentValue) => accumulator   currentValue, 0);

console.log(sum); // 15

寻找()

find() 方法返回数组中满足所提供的测试函数的第一个元素的值。它在找到第一个匹配项后停止。

const array = [1, 2, 3, 4, 5];

const found = array.find((element) => element > 3);

console.log(found); // 4

查找索引()

findIndex() 方法返回数组中满足所提供的测试函数的第一个元素的索引。如果没有元素满足测试函数,则返回-1。

const array = [1, 2, 3, 4, 5];

const index = array.findIndex((element) => element > 3);

console.log(index); // 3

种类()

sort() 方法对数组的元素进行就地排序并返回排序后的数组。它通常用于对字符串和数字进行排序,但可能需要比较函数才能正确对数字进行排序。

const array = [5, 3, 8, 1, 2];

const sortedArray = array.sort((a, b) => a - b);

console.log(sortedArray); // [1, 2, 3, 5, 8]

撤销()

reverse() 方法就地反转数组的元素。第一个数组元素成为最后一个,最后一个成为第一个。

const array = [1, 2, 3, 4, 5];

const reversedArray = array.reverse();

console.log(reversedArray); // [5, 4, 3, 2, 1]

连接()

concat()方法用于合并两个或多个数组。它返回一个新数组,保持原始数组不变。

const array1 = [1, 2, 3];
const array2 = [4, 5, 6];

const concatenatedArray = array1.concat(array2);

console.log(concatenatedArray); // [1, 2, 3, 4, 5, 6]

片()

slice() 方法将数组的一部分浅拷贝返回到从头到尾(不包括 end)选择的新数组对象中。

const array = [1, 2, 3, 4, 5];

const slicedArray = array.slice(1, 4);

console.log(slicedArray); // [2, 3, 4]

拼接()

splice() 方法通过删除、替换或添加元素来更改数组的内容。

const array = [1, 2, 3, 4, 5];

array.splice(2, 1, 6, 7);

console.log(array); // [1, 2, 6, 7, 4, 5]

推()

push() 方法将一个或多个元素添加到数组末尾并返回数组的新长度。

const array = [1, 2, 3];

array.push(4, 5);

console.log(array); // [1, 2, 3, 4, 5]

流行音乐()

pop() 方法从数组中删除最后一个元素并返回该元素。

const array = [1, 2, 3, 4, 5];

const lastElement = array.pop();

console.log(lastElement); // 5
console.log(array); // [1, 2, 3, 4]

转移()

shift() 方法从数组中删除第一个元素并返回该元素。

const array = [1, 2, 3, 4, 5];

const firstElement = array.shift();

console.log(firstElement); // 1
console.log(array); // [2, 3, 4, 5]

取消移位()

unshift() 方法将一个或多个元素添加到数组的开头并返回数组的新长度。

const array = [2, 3, 4, 5];

array.unshift(1);

console.log(array); // [1, 2, 3, 4, 5]

加入()

join() 方法通过连接数组中的所有元素(以逗号或指定的分隔符字符串分隔)来创建并返回一个新字符串。

const array = [1, 2, 3, 4, 5];

const joinedString = array.join('-');

console.log(joinedString); // "1-2-3-4-5"

附加方法

每一个()

every() 方法测试数组中的所有元素是否通过提供的测试函数。

const array = [2, 4, 6, 8];

const allEven = array.every((element) => element % 2 === 0);

console.log(allEven); // true

一些()

some() 方法测试数组中至少一个元素是否通过提供的测试函数。

const array = [1, 2, 3, 4, 5];

const hasEven = array.some((element) => element % 2 === 0);

console.log(hasEven); // true

平坦的()

flat() 方法创建一个新数组,其中所有子数组元素递归地连接到其中,直到指定的深度。

const array = [1, [2, [3, [4]]]];

const flattenedArray = array.flat(2);

console.log(flattenedArray); // [1, 2, 3, [4]]

平面地图()

flatMap() 方法首先使用映射函数映射每个元素,然后将结果展平到一个新数组中。它是map()和flat()的组合。

const array = [1, 2, 3, 4];

const flattened = array.flatMap((num) => [num, num * 2]);

console.log(flattened); // [1, 2, 2, 4, 3, 6, 4, 8]

充满()

fill() 方法用静态值填充数组中从起始索引到结束索引的所有元素。

const array = [1, 2, 3, 4, 5];

array.fill(0, 2, 4);

console.log(array); // [1, 2, 0, 0, 5]

在()内复制

copyWithin() 方法将数组的一部分浅拷贝到同一数组中的另一个位置,而不修改其长度。

const array = [1, 2, 3, 4, 5];

array.copyWithin(0, 3, 5);

console.log(array); // [4, 5, 3, 4, 5]

包括()

includes() 方法检查数组是否包含某个值。

const array = [1, 2, 3, 4, 5];

const hasThree =

 array.includes(3);

console.log(hasThree); // true

toString()

toString()方法将数组转换为字符串,字符串之间用逗号分隔。

const array = [1, 2, 3, 4, 5];

const arrayString = array.toString();

console.log(arrayString); // "1,2,3,4,5"

索引()

indexOf() 方法返回在数组中可以找到给定元素的第一个索引,如果不存在则返回 -1。

const array = [1, 2, 3, 4, 5];

const index = array.indexOf(3);

console.log(index); // 2

最后索引()

lastIndexOf() 方法返回在数组中可以找到给定元素的最后一个索引,如果不存在则返回 -1。

const array = [1, 2, 3, 4, 3, 5];

const lastIndex = array.lastIndexOf(3);

console.log(lastIndex); // 4

从()

Array.from() 方法从类似数组或可迭代对象创建一个新的数组实例。

const array = Array.from('hello');

console.log(array); // ['h', 'e', 'l', 'l', 'o']

isArray()

Array.isArray()方法检查传递的值是否是数组。

const array = [1, 2, 3, 4, 5];
const notArray = { a: 1, b: 2 };

console.log(Array.isArray(array)); // true
console.log(Array.isArray(notArray)); // false

的()

Array.of() 方法创建一个具有可变数量元素的新数组实例。

const array1 = Array.of(1, 2, 3);
const array2 = Array.of('a', 'b', 'c');

console.log(array1); // [1, 2, 3]
console.log(array2); // ['a', 'b', 'c']

结论

JavaScript 数组具有多种内置方法,可以进行强大的数据操作。了解这些方法将使您更有效地编写干净简洁的代码。花一些时间尝试这些方法,看看它们如何改进您的代码。
最初发布:JavaScript 数组方法指南

版本聲明 本文轉載於:https://dev.to/who_tf_cares/javascript-array-methods-a-comprehensive-guide-4966?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 文件的力量:閱讀如何改變我在 JamSphere 上使用 Redux 的體驗
    文件的力量:閱讀如何改變我在 JamSphere 上使用 Redux 的體驗
    作為開發人員,我們經常發現自己一頭扎進新的庫或框架,渴望將我們的想法變為現實。跳過文件並直接跳到編碼的誘惑很強烈——畢竟,這有多難呢?但正如我透過建立音樂管理平台 JamSphere 的經驗所了解到的那樣,跳過這一關鍵步驟可能會將順利的旅程變成充滿挑戰的艱苦戰鬥。 跳過文檔的魅力 ...
    程式設計 發佈於2024-11-07
  • 如何在PHP多子網域應用中精準控制Cookie域?
    如何在PHP多子網域應用中精準控制Cookie域?
    在PHP 中控制Cookie 域和子域在PHP 中控制Cookie 域和子域建立多子網域網站時,必須控制會話cookie 的網域確保每個子網域的正確會話管理。然而,手動設定網域時,PHP 的 cookie 處理似乎存在差異。 header("Set-Cookie: cookiename=c...
    程式設計 發佈於2024-11-07
  • 如何取得已安裝的 Go 軟體包的完整清單?
    如何取得已安裝的 Go 軟體包的完整清單?
    檢索Go 中已安裝軟體包的綜合清單在多台電腦上傳輸Go 軟體包安裝時,有必要取得詳細的清單所有已安裝的軟體包。本文概述了此任務的簡單且最新的解決方案。 解決方案:利用“go list”與過時的答案相反,當前的建議列出Go 中已安裝的軟體包是使用“go list”命令。透過指定三個文字句點 ('...
    程式設計 發佈於2024-11-07
  • Java中的三元運算子可以不回傳值嗎?
    Java中的三元運算子可以不回傳值嗎?
    三元運算子:深入研究程式碼最佳化三元運算子:深入研究程式碼最佳化雖然三元運算子(?:) 是Java 中的一個強大工具,但它了解其限制至關重要。一個常見的誤解是可以在不傳回值的情況下使用它。 與這種看法相反,Java 不允許在沒有 return 語句的情況下進行三元運算。三元運算子的目的是評估條件並將...
    程式設計 發佈於2024-11-07
  • 為什麼您應該在下一個 PHP 專案中嘗試 Lithe?
    為什麼您應該在下一個 PHP 專案中嘗試 Lithe?
    Lithe 是尋求簡單性與強大功能之間平衡的開發人員的完美 PHP 框架。如果您厭倦了使開發緩慢且令人困惑的繁瑣框架,Lithe 提供了一種極簡但極其靈活的方法,旨在使您的工作更快、更有效率。 1. 輕量且超快 Lithe 的開發重點是輕量級,允許您以很少的開銷創建應用程式。與其他...
    程式設計 發佈於2024-11-07
  • 如何處理 Android 中的網路連線變更?
    如何處理 Android 中的網路連線變更?
    處理Android 中的互聯網連接變化問題集中在需要一個可以監視互聯網連接變化的廣播接收器,因為現有代碼僅檢測連接變化。 為了解決這個問題,這裡有一個替代方法:public class NetworkUtil { public static final int TYPE_WIFI = 1; ...
    程式設計 發佈於2024-11-07
  • Python 3.x 的 Super() 在沒有參數的情況下如何運作?
    Python 3.x 的 Super() 在沒有參數的情況下如何運作?
    Python 3.x 的超級魔法:解開謎團Python 3.x 在其super() 方法中引入了令人驚訝的轉折,允許無參數呼叫。這種看似無害的改變在幕後卻帶來了重大的後果和內在的魔力。 揭開魔力為了維護 DRY 原則,新的 super() 行為繞過了顯式類別命名。它有一個特殊的 class 單元,用...
    程式設計 發佈於2024-11-07
  • Tailwind Flex:Flexbox 實用程式初學者指南
    Tailwind Flex:Flexbox 實用程式初學者指南
    Tailwind Flex 提供了一种创建响应式布局的有效方法,无需编写复杂的 CSS。通过使用 flex、flex-row 和 flex-col 等简单的实用程序,您可以轻松对齐和排列元素。 Tailwind Flex 非常适合希望简化布局创建同时保持对对齐、方向和间距的完全控制的开发人员 - 所...
    程式設計 發佈於2024-11-07
  • ETL:從文字中提取人名
    ETL:從文字中提取人名
    假設我們想要抓取chicagomusiccompass.com。 如你所見,它有幾張卡片,每張卡片代表一個事件。現在,讓我們來看看下一篇: 注意事件名稱是: jazmin bean: the traumatic livelihood tour 所以現在的問題是:我們要如何從文本中提取藝術家的名字?...
    程式設計 發佈於2024-11-07
  • 如何控制 C++ ostream 輸出中的浮點精度?
    如何控制 C++ ostream 輸出中的浮點精度?
    在Ostream 輸出中維護浮點精度在Ostream 輸出中維護浮點精度在C 中,在ostream 運算中使用“
    程式設計 發佈於2024-11-07
  • 如何保證PHP會話的安全銷毀?
    如何保證PHP會話的安全銷毀?
    確保銷毀 PHP 會話儘管資訊存在衝突,但仍有有效的方法可以安全地消除 PHP 會話。要實現此最終終止,遵循多步驟流程至關重要。 會話終止的基本步驟刪除會話資料:啟動會話後與session_start() 一起,使用unset() 刪除與特定會話變數關聯的任何儲存數據,例如$_SESSION[...
    程式設計 發佈於2024-11-07
  • 為什麼我的 MongoDB 文件在 Go 中使用 TTL 索引 5 秒後沒有過期?
    為什麼我的 MongoDB 文件在 Go 中使用 TTL 索引 5 秒後沒有過期?
    在Go 中使用MongoDB 在指定的秒數後使文件過期使用TTL 索引,MongoDB 允許您在指定的秒數後自動使文件過期期間。本文示範如何使用官方 mongo-go-driver 在 Go 中實現此目的。 按照MongoDB 文檔,程式碼顯示如何:建立帶有expireAfterSeconds 的索...
    程式設計 發佈於2024-11-07
  • 使用 JetForms 簡化表單管理:完整指南
    使用 JetForms 簡化表單管理:完整指南
    在當今的數位環境中,管理表單提交很快就會變得不堪重負,特別是當您跨不同平台處理多個表單時。無論是網站上的簡單聯絡表單還是產品的全面調查,手動維護表單提交都是一件麻煩事。這就是 JetForms 的用武之地——一個簡化流程、節省您時間和精力的精簡平台。 在本指南中,我將引導您了解如何開始使用 Jet...
    程式設計 發佈於2024-11-07
  • 使用清單清單時如何修復 Tensorflow 中的「不支援的物件類型浮點」錯誤?
    使用清單清單時如何修復 Tensorflow 中的「不支援的物件類型浮點」錯誤?
    Tensorflow - ValueError:無法將NumPy 數組轉換為張量(不支援的物件類型float)背景您正在嘗試訓練一個)背景]您正在嘗試訓練一個包含清單清單的模型,每個清單包含1000 個浮點數,但遇到錯誤「無法將NumPy 陣列轉換為張量(不支援的物件類型浮點)。」x_train =...
    程式設計 發佈於2024-11-07
  • 如何使用 contains() 函數在 XPath 中實作不區分大小寫的搜尋?
    如何使用 contains() 函數在 XPath 中實作不區分大小寫的搜尋?
    不區分大小寫的 XPath contains() 函數在 XPath 中,contains() 函數區分大小寫。但是,有一些方法可以解決此限制。 方法1:翻譯字元此方法涉及在檢查子字串之前將字元轉換為小寫或大寫:/html/body//text()[ contains( translat...
    程式設計 發佈於2024-11-07

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3