您好,登錄后才能下訂單哦!
小編給大家分享一下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(function(item, index, array) {})
功能:有一項返回true,則整體為true,不改變原數組
語法:[].every(function(item, index, array) {})
功能:需要全部符合條件才返回true,有一項返回false,則整體為false,不改變原數組
語法:[].join(str)
功能:返回通過指定連接符str把數組連接成字符串,不改變原數組
語法:[].push(item) / [].pop(item)
功能:數組末尾推入push和彈出pop,返回改變后數組的長度/彈出項,改變原數組
語法:[].unshift(item) / [].shift(item)
功能:數組頭部推入unshift和彈出shift,返回改變后數組的長度/彈出項,改變原數組
語法:[].sort(fn) [].reverse()
功能:按規則排序與反轉,改變原數組
語法:[].splice(start, number, value1, value2...)
功能:返回刪除元素組成的數組,從start
處開始刪除number
個值后插入valueN
參數列表到數組中,改變原數組
語法:[].concat([])
功能:連接n(n >= 2)個數組,返回數組連接后的數組副本,淺拷貝,不改變原數組
語法:[].slice(start, end)
功能:返回截斷后的新數組,不改變原數組
語法:[].indexOf(value[, fromIndex])
功能:
查找數組項
indexOf 從fromIndex
(默認為0)開始向后查找value
lastIndexOf 從fromIndex
(默認為-1)開始向前查找value
返回value對應的下標
語法:reduce / reduceRight(callback[, initialValue])
功能:兩兩執行,prev 為上次化簡函數的return值,cur 為當前值(從第二項開始)
callback 函數的參數:之前值(previousValue)、當前值(currentValue)、索引值(currentIndex)以及數組本身(array)
initialValue 可選的初始值,作為第一次調用回調函數時傳給previousValue的值。也就是,為累加等操作傳入起始值(額外的加值)
reduceRight是從數組的末尾開始
語法:Array.isArray(value)
功能:用于確定參數value是否是一個Array
ind(fn)`
功能:返回符合條件的第一個數組元素item
語法:[].findIndex(fn)
功能:返回符合條件的第一個數組元素的索引
語法:[].fill(value[, start, end])
功能:將類似數組的對象和可遍歷(iterable)
的對象轉為真正的數組
常用:
const set = new Set(3, 8, 9, 0) Array.from(set)
語法:[].entries()
功能:返回迭代器:返回鍵值對
【注】Object.entries(obj)
方法返回一個給定對象自身可枚舉屬性的鍵值對數組,其排列與使用 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()
功能:返回迭代器:返回鍵key(即上面的每個數組中的第一個值)
語法:[].values()
功能:返回迭代器:返回值value(即上面的每個數組中的第二個值)
語法:[].includes(val[, fromIndex])
功能:用于從fromIndex
判斷數組中是否包含val,可替代ES5中的 indexOf
語法:[].copyWithin(target[, start[, end]])
功能:淺復制數組的一部分(start~end)到同一數組中的另目標位置target,返回改變后的數組,而不修改其大小;start默認為0, end默認為length-1; 改變原數組
語法: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(value[, start, end])
功能:用指定的元素填充數組,可用于初始化數組,返回改變后的數組,改變原數組
填充值(value),填充起始位置(start,默認為0),填充結束位置(end,默認為數組length)。
map/forEach/some/every/filter 見上
遍歷所有可枚舉屬性,常用于遍歷對象Object
遍歷所有可迭代iterable的對象
循環遍歷對象自身的和繼承的可枚舉屬性(不含Symbol屬性)【可枚舉 - Symbol】
返回一個數組,包括對象自身的(不含繼承的)所有可枚舉屬性(不含Symbol屬性)【自身可枚舉 - Symbol】
返回一個數組,包含對象自身的所有屬性(不含Symbol屬性,但是包括不可枚舉屬性)【自身 - Symbol】
返回一個數組,包含對象自身的所有Symbol屬性【自身的Symbol】
返回一個數組,包含對象自身的所有屬性,不管是屬性名是Symbol或字符串,也不管是否可枚舉 【自身所有】
以上是“JavaScript數組常用API方法和遍歷方法是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。