這篇文章帶給大家的內容是關於JavaScript陣列常用API方法和遍歷方法的小結(附範例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
陣列(array)
ES5 *
map
語法:[].map(function(item, index, array) {return xxx} )
功能:遍歷數組,返回回調返回值組成的新數組,不改變原始數組,不會對空數組進行檢測
forEach
語法:[].forEach( function(item, index, array) {})
功能:無法break,可以用try/catch中throw new Error來停止,不改變原數組
filter
#語法: [].filter(function(item, index, array) {})
功能:過濾,傳回過濾後的數組,不會改變原始數組,不會對空數組進行偵測
eg:
const data = [-8, 9, 5, 3]; const res = data.filter(function(item) { if (item > 3) { return item } }); console.log(res); // [9, 5]
some
語法:[].some(function(item, index, array) {})
功能:有一個回傳true,則整體為true,不改變原始數組
every
語法:[].every(function(item, index, array) {})
功能:需要全部符合條件才回傳true,有一項回傳false,則整體為false,不改變原始數組
join
語法: [].join(str)
功能:傳回透過指定連接符號str把陣列連接成字串,不改變原始陣列
push / pop
語法:[].push(item) / [].pop(item)
功能:陣列末端推入push和彈出pop,傳回改變後陣列的長度/彈出項, 改變原數組
unshift / shift
語法:[].unshift(item) / [].shift(item)
#功能:數組頭部推入unshift和彈出shift,返回改變後數組的長度/彈出項,改變原始數組
sort(fn) / reverse
#語法:[].sort(fn) [].reverse()
功能:依規則排序與反轉,改變原始陣列
[].splice(start, number, value1, value2...)功能:傳回刪除元素組成的數組,從
start處開始刪除
number個值後插入
valueN參數清單到陣列中,
改變原始陣列##concat
語法:
[].concat([])功能:連接n(n >= 2)個數組,返回數組連接後的數組副本,淺拷貝,
不改變原始數組slice
語法:
[].slice(start, end)功能:傳回截斷後的新數組,
不改變原始數組#indexOf / lastIndexOf(value, fromIndex)
語法:
[].indexOf(value[, fromIndex])功能:
尋找陣列項目
indexOf 從
fromIndex
(預設為0)開始向後尋找value
lastIndexOf 從
fromIndex
(預設為-1)開始向前尋找value
傳回value對應的下標
reduce / reduceRight
語法:
reduce / reduceRight(callback[, initialValue])功能:兩兩執行,prev 為上次化簡函數的return值,cur 為當前值(從第二項開始)
callback 函數的參數:之前值(previousValue)、當前值( currentValue)、索引值(currentIndex)以及陣列本身(array)
initialValue 可選的初始值,作為第一次呼叫回呼函數時傳給previousValue的值。也就是,為累加等操作傳入起始值(額外的加值)
reduceRight是從陣列的結尾開始
isArray *
語法:
Array.isArray(value) 功能:用於確定參數value是否是一個Array
#ES6
find *
ind(fn)`
功能:傳回符合條件的第一個陣列元素itemfindIndex *
語法:
[].findIndex(fn) 功能:傳回符合條件的第一個陣列元素的
索引from *
語法:
[].fill(value[, start, end]) 功能:將類似陣列的物件和可遍歷
(iterable)
的物件轉為真正的陣列常用:
const set = new Set(3, 8, 9, 0) Array.from(set)
entries *
語法:
[].entries()功能:傳回迭代器:傳回鍵值對
【註】
方法傳回一個給定物件本身可枚舉屬性的鍵值對數組,其排列與使用for...in 循環遍歷該物件時返回的順序一致(區別在於for-in 循環也枚舉原型鏈中的屬性)【MDN】而
[].entries()
是Array.prototype上的方法keys/values 類似
//数组 const arr = ['a', 'b', 'c']; for(let v of arr.entries()) { console.log(v) } // [0, 'a'] [1, 'b'] [2, 'c'] //Set const arr1 = new Set(['a', 'b', 'c']); for(let v of arr1.entries()) { console.log(v) } // ['a', 'a'] ['b', 'b'] ['c', 'c'] //Map const arr2 = new Map(); arr2.set('a', 'a'); arr2.set('b', 'b'); for(let v of arr2.entries()) { console.log(v) } // ['a', 'a'] ['b', 'b']
keys *
語法:
[].keys()功能:傳回迭代器:傳回鍵key(即上面的每個陣列中的第一個值)
values
語法:
[].values()功能:傳回迭代器:傳回值value(即上面的每個陣列中的第二個值)
includes *
语法:[].includes(val[, fromIndex])
功能:用于从fromIndex
判断数组中是否包含val,可替代ES5中的 indexOf
copyWithin
语法:[].copyWithin(target[, start[, end]])
功能:浅复制数组的一部分(start~end)到同一数组中的另目标位置target,返回改变后的数组,而不修改其大小;start默认为0, end默认为length-1; 改变原数组
of
语法:Array.of()
功能:创建一个具有可变数量参数的新数组实例,而不考虑参数的数量或类型
Array构造函数 & Array.of() 区别
实例说明
Array.of(7); // [7] Array.of(1, 2, 3); // [1, 2, 3] Array(7); // [ , , , , , , ] Array(1, 2, 3); // [1, 2, 3]
fill
语法:[].fill(value[, start, end])
功能:用指定的元素填充数组,可用于初始化数组,返回改变后的数组,改变原数组
填充值(value),填充起始位置(start,默认为0),填充结束位置(end,默认为数组length)。
遍历
数组
map/forEach/some/every/filter 见上
for
for...in
遍历所有可枚举属性,常用于遍历对象Object
for...of
遍历所有可迭代iterable的对象
对象【属性】
for...in
循环遍历对象自身的和继承的可枚举属性(不含Symbol属性)【可枚举 - Symbol】
Object.keys(obj)
返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含Symbol属性)【自身可枚举 - Symbol】
Object.getOwnPropertyNames(obj)
返回一个数组,包含对象自身的所有属性(不含Symbol属性,但是包括不可枚举属性)【自身 - Symbol】
Object.getOwnPropertySymbols(obj)
返回一个数组,包含对象自身的所有Symbol属性【自身的Symbol】
Reflect.ownKeys(obj)
返回一个数组,包含对象自身的所有属性,不管是属性名是Symbol或字符串,也不管是否可枚举 【自身所有】
【相关推荐:JavaScript视频教程】
以上是JavaScript陣列常用API方法和遍歷方法的小結(附範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

JavaScript在現實世界中的應用包括服務器端編程、移動應用開發和物聯網控制:1.通過Node.js實現服務器端編程,適用於高並發請求處理。 2.通過ReactNative進行移動應用開發,支持跨平台部署。 3.通過Johnny-Five庫用於物聯網設備控制,適用於硬件交互。

我使用您的日常技術工具構建了功能性的多租戶SaaS應用程序(一個Edtech應用程序),您可以做同樣的事情。 首先,什麼是多租戶SaaS應用程序? 多租戶SaaS應用程序可讓您從唱歌中為多個客戶提供服務

本文展示了與許可證確保的後端的前端集成,並使用Next.js構建功能性Edtech SaaS應用程序。 前端獲取用戶權限以控制UI的可見性並確保API要求遵守角色庫

JavaScript是現代Web開發的核心語言,因其多樣性和靈活性而廣泛應用。 1)前端開發:通過DOM操作和現代框架(如React、Vue.js、Angular)構建動態網頁和單頁面應用。 2)服務器端開發:Node.js利用非阻塞I/O模型處理高並發和實時應用。 3)移動和桌面應用開發:通過ReactNative和Electron實現跨平台開發,提高開發效率。

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

Python更适合数据科学和机器学习,JavaScript更适合前端和全栈开发。1.Python以简洁语法和丰富库生态著称,适用于数据分析和Web开发。2.JavaScript是前端开发核心,Node.js支持服务器端编程,适用于全栈开发。

JavaScript不需要安裝,因為它已內置於現代瀏覽器中。你只需文本編輯器和瀏覽器即可開始使用。 1)在瀏覽器環境中,通過標籤嵌入HTML文件中運行。 2)在Node.js環境中,下載並安裝Node.js後,通過命令行運行JavaScript文件。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

記事本++7.3.1
好用且免費的程式碼編輯器

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境