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