摘要:方法返回的數組元素是調用的數組的一個子集。當數組中至少有一個元素調用判定函數返回,它就返回返回一個布爾值,當有一個元素符合條件就返回,否則返回和這兩個方法使用指定的函數將數組元素進行組合,生成單個值。
會改變原數組的方法:
push() 在尾部添加一個或多個元素,并返回數組長度
let arr = [1, 2, 3] arr.push("a", "b") // 5 console.log(arr) // [1, 2, 3, "a", "b"]
pop()方法刪除數組的最后一個元素,返回刪除的元素
//組合使用push()和pop()能夠用JavaScript數組實現先進后出的棧 let arr2 = ["a", "b", "c"] arr2.pop() // "c" console.log(arr2) // ["a", "b"]
unshift() 方法在頭部添加一個或多個元素,返回數組的長度
let arr3 = ["a", "b", "c"] arr3.unshift(1, 2) // 5 console.log(arr3) // [1, 2, "a", "b", "c"]
shift()方法刪除數組的第一個元素,返回刪除的元素
let arr4 = ["a", "b", "c"] arr4.shift() // "a" console.log(arr4) // ["b", "c"]
splice()方法是在數組中插入或刪除元素的通用方法,返回刪除的元素
let arr5 = [1, 2, 3, 4, 5] arr5.splice(2, 3, "a","b") // [3, 4, 5] console.log(arr5); // [1, 2, "a", "b"]
sort()方法將數組的元素排序并返回排序后的數組
let arr6 = [2, 34, 123, 11, 32] arr6.sort() // [11, 123, 2, 32, 34] // 排序出現問題,因為數組的sort 函數是通過字典序排序,所以 arr6.sort( (a, b) => { return a - b }) // [2, 11, 32, 34, 123]
reverse() 方法將數組的元素顛倒順序,返回逆序的數組
arr6.reverse() // [123, 34, 32, 11, 2]
copyWithin()方法淺復制數組的一部分到同一個數組的另一個位置,并返回它,而不修改其大小
三個參數,第一個參數代表開始修改的位置,第二個參數代表作為替換元素的起始位置,第三個元素代表替換元素的結束位置。
[1, 2, 3, 4, 5].copyWithin(-2); // [1, 2, 3, 1, 2] [1, 2, 3, 4, 5].copyWithin(0, 3); // [4, 5, 3, 4, 5] [1, 2, 3, 4, 5].copyWithin(0, 3, 4); // [4, 2, 3, 4, 5] [1, 2, 3, 4, 5].copyWithin(-2, -3, -1); // [1, 2, 3, 3, 4]
fill()用固定值填充一個數組
三個參數,第一個代表填充數組的值,第二個開始的索引,第三個終止索引。
[1, 2, 3].fill(4); // [4, 4, 4] [1, 2, 3].fill(4, 1); // [1, 4, 4] [1, 2, 3].fill(4, 1, 2); // [1, 4, 3]不改變原數組的方法
slice() 方法返回一個從開始到結束(不包括結束)選擇的數組的一部分淺拷貝到一個新的數組對象,原數組不會被修改。
let ary = [1, 2, 3] ary.slice(0, 2) // [1, 2]
join() 方法將數組中所有元素轉換為字符串并連接在一起
let ary2 = ["a", "b", "c"] ary2.join("=") // "a=b=c"
toString() 方法將數組的每個元素轉換為字符串
let ary3 = ["a", "b", "c", 1, 2] ary3.toString() // "a,b,c,1,2"
concat() 方法用于合并兩個或多個數組,此方法不改變現有數組,返回一個新數組
ary2.concat(ary3) // ["a", "b", "c", "a", "b", "c", 1, 2]
isArray() 用于確定傳遞的值是否是一個 Array。
arr instanceof Object // true arr instanceof Array // true // 為了解決上面出現的情況,數組可使用 isArray() 方法進行判斷 Array.isArray(arr) // true Array.isArray({}) // false數組遍歷、映射、過濾、檢測、簡化等方法
forEach() 方法從頭到尾遍歷數組,為每個元素調用指定的函數。
let a = ["a", "b", "c"] a.forEach( (item, index, a) => { console.log(index, item) }) /* 0 "a" 1 "b" 2 "c" */
map() 方法創建一個新數組,其結果是該數組中的每個元素都調用一個callback函數后返回的結果。
let a2 = [1, 2, 3] let double = a2.map( (item, index,a2) => { return item*2 }) console.log(double) // [2, 4, 6]
filter() 方法返回的數組元素是調用的數組的一個子集。傳入的函數時用來邏輯判定的,該函數返回 true 或 false,如果返回值為true或能轉化為true的值,那么傳遞給判斷函數的元素就是這個子集的成員,它將被添加倒一個作為返回值的數組中。
let number = [1, 2, 3, 4, 5, 6]; let small = number.filter((value, index, number) => { return value < 4 && index % 2 ===0; }) console.log(small); // [1, 2, 3]
every() 方法測試數組的所有元素是否都通過了指定函數的測試。當且僅當針對數組中的所有元素調用判定函數都返回true,它才返回true。
返回一個布爾值,當所有的元素都符合條件才返回true,否則返回false
let a3 = [1, 2, 4, 10, 23] let result = a3.every( (element, index, a3) => { return element > 3 }) console.log(result) // false
some() 方法測試數組中的某些元素是否通過由提供的函數實現的測試。當數組中至少有一個元素調用判定函數返回true,它就返回true
返回一個布爾值,當有一個元素符合條件就返回true,否則返回false
let result2 = a3.some( (element, index, a3) => { return element > 3 }) console.log(result2) // true
reduce() 和 reduceRight() 這兩個方法使用指定的函數將數組元素進行組合,生成單個值。
返回值:?函數累計處理的結果
let a4 = ["a", "b", "c"] let a4str = a4.reduce( (a, b) => { return a + b }) console.log(a4str) // abc // reduceRight() 是反方向 let a4str2 = a4.reduce( (a, b) => { return a + b }) // cba
indexof() 方法返回在數組中可以找到一個給定元素的第一個索引,如果不存在,則返回-1。
返回?首個被找到的元素在數組中的索引位置; 若沒有找到則返回 -1 。第二個參數代表開始查找的位置
let a5 = [1, 4, 5, 8] a5.indexOf(1) // 0 a5.indexOf(4, 2) // -1 a5.indexOf(5, 1) // 2
lastIndexOf() 跟indexOf()查找方向相反,方法返回指定元素在數組中的最后一個的索引,如果不存在則返回 -1。
返回數組中最后一個符合元素的索引,如未找到返回-1
let array = [2,5,9,2]; array.lastIndexOf(7) // -1 array.lastIndexOf(2,4) // 3 array.lastIndexOf(2,3) // 3
includes() 方法用來判斷一個數組是否包含一個指定的值,根據情況,如果包含則返回 true,否則返回false。
解決不能查找 NaN的問題,返回一個布爾值,根據情況,如果包含則返回 true,否則返回false。
[1, 2, 3].includes(2); // true [1, 2, 3].includes(4); // false [1, 2, NaN].includes(NaN); // true
find() 和 findIndex() find 方法返回數組中滿足提供的測試函數的第一個元素的值。否則返回 undefined。findIndex 方法返回數組中滿足提供的測試函數的第一個元素的索引。否則返回-1。
find查找數組中第一個符合條件的值,如果查找到,立即返回,不再向下進行。否則返回 undefined。findIndex會立即返回該元素的索引。如果回調從不返回真值,或者數組的length為0,則findIndex返回-1。
let a = [1, -4, -5, 10].find((n) => n < 0); let b = [1, 4, -5, 10].findIndex((n) => n < 0); // 返回索引2
keys() 方法返回一個新的Array迭代器,它包含數組中每個索引的鍵。
var array1 = ["a", "b", "c"]; var iterator = array1.keys(); for (let key of iterator) { console.log(key); // expected output: 0 1 2 }
values() 方法返回一個新的Array迭代器,它包含數組中每個索引的值。
let iterator2 = array1.values() for (const item of iterator2) { console.log(item) // a b c }
entries() 方法返回一個新的Array迭代器,該對象包含數組中每個索引的鍵/值對。
let iterator3 = array1.entries() for (const item of iterator3) { console.log(item) } // [0, "a"] // [1, "b"] // [2, "c"]
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/96797.html
摘要:原來,它的替換功能實際上是通過刪除和添加來完成的。在只有一個參數的情況下,方法返回從該參數指定位置開始到當前數組末尾的所有項。它并不改變原數組。吐槽我曾經一直困惑數組中的刪除方法,當知道刪除這項偉大的任務竟然交給了,我心里是失望的。 戰斗英雄你當,漂亮媳婦兒你娶,怎么啥好事都被你給占了——《激情燃燒的歲月》 談起這兩個方法,新手不蒙,我是不信!正如吐槽Javascript系列一:sli...
摘要:以下遞歸函數存在棧溢出的風險,請問如何優化解答請實現一個計算最大公約數的函數在這里編寫代碼解答數組去重如果數組中有排除用實現斐波那契數列函數返回第個斐波那契數。父類我的名字是我今年歲原型繼承構造函數繼承組合繼承組合繼承優化 1.以下遞歸函數存在棧溢出的風險,請問如何優化? function factorial(n){ return n*factorial(n-1) } 解答: ...
文章目錄 強烈推薦系列教程,建議學起來!! 一.pycharm下載安裝二.python下載安裝三.pycharm上配置python四.配置鏡像源讓你下載嗖嗖的快4.1pycharm內部配置 4.2手動添加鏡像源4.3永久配置鏡像源 五.插件安裝(比如漢化?)5.1自動補碼神器第一款5.2漢化pycharm5.3其它插件 六.美女背景七.自定義腳本開頭八、這個前言一定要看九、pyt...
摘要:圖像矩圖像矩或稱幾何矩是由在年提出的。矩給出了對圖像形狀的一種度量。使用建議的第二種采樣方法即以圖像中心進行高斯分布采樣,長度使用,然后在基礎上增加了旋轉的描述以及快速的計算方法,這種方法被稱為。 ORB(Oriented FAST and Rotated BRIEF)可用來替代SIFT(或SURF),它對圖像更具有抗噪特性,是一種特征檢測高效算法,其速度滿足實時要求,可用于增強圖像匹...
閱讀 635·2021-11-22 15:32
閱讀 2723·2021-11-19 09:40
閱讀 2318·2021-11-17 09:33
閱讀 1274·2021-11-15 11:36
閱讀 1870·2021-10-11 10:59
閱讀 1483·2019-08-29 16:41
閱讀 1785·2019-08-29 13:45
閱讀 2155·2019-08-26 13:36