摘要:返回值為排序后的新數(shù)組。會(huì)有一個(gè)函數(shù)作為的參數(shù),該函數(shù)也有個(gè)參數(shù),分別為調(diào)用的數(shù)組的每一項(xiàng)元素對(duì)應(yīng)元素所在的位置表示該數(shù)組過(guò)濾方法。返回滿足條件的元素組成的數(shù)組。
原生javascript方法
var colors = []; var colors = ["red", "blue"];
if(arr instanceof Array) {}
如果網(wǎng)頁(yè)中包含多個(gè)框架,則需要使用下面的方式檢測(cè)數(shù)組
if(Array.isArray(arr)) {}
var colors = ["red", "yellow"]; colors.valueOf(); // > ["red", "yellow"]
var colors = ["red", "yellow"]; colors.toString(); // > "red,yellow"
從數(shù)組末尾添加元素,并返回新數(shù)組的長(zhǎng)度
var colors = ["red", "yellow"]; colors.push("pink"); // > 3
從數(shù)組末尾刪除元素,并返回被刪除的元素
var colors = ["red", "yellow"]; colors.pop(); // > "yellow"
從數(shù)組頭部添加元素,并返回新數(shù)組的長(zhǎng)度
var colors = ["green", "pink"]; colors.unshift("pink"); // > 3
從數(shù)組頭部刪除元素,并返回被刪除的元素
var colors = ["yellow", "orange"]; colors.shift(); // > "yellow"
反轉(zhuǎn)數(shù)組的順序,并返回重新排序之后的數(shù)組, 原數(shù)組會(huì)被改變
[1, 2, 3, "reer", "game", 2, 5].reverse(); // > [5, 2, "game", "reer", 3, 2, 1]
如果不傳參數(shù),默認(rèn)情況下數(shù)組內(nèi)的元素會(huì)被轉(zhuǎn)換為字符串進(jìn)行比較,因此一般不推薦直接使用默認(rèn)的arr.sort()進(jìn)行排序。
返回值為排序后的新數(shù)組。原數(shù)組會(huì)被改變
將數(shù)組內(nèi)數(shù)值元素從小到大排序。
var demo = [1, 4, 2, "reee", "name", "9", "doc"]; demo.sort(function(a, b)) { return a - b; } // > [1, 2, 4, "reee", "name", "9", "doc"]
將數(shù)組內(nèi)數(shù)值元素從大到小排序
var demo = [1, 4, 2, "reee", "name", "9", "doc"]; demo.sort(function(a, b) { return b - a; }) // > [4, 2, 1, "reee", "name", "9", "doc"]
參數(shù)中傳入元素或者數(shù)組, 會(huì)將該參數(shù)合并到arr中,返回合并后新的數(shù)組,原數(shù)組不會(huì)改變
var arr = [1, 3, "jake"]; arr.concat("rose", [2, "fi"]); // > [1, 3, "jake", "rose", 2, "fi"]
剪切數(shù)組,返回剪切之后的數(shù)組,元素不會(huì)改變
傳入一個(gè)參數(shù),表示起始位置,結(jié)束位置為最末尾
var arr = [4, 2, 1, "reee", "name", "9", "doc"]; arr.slice(2); // > [1, "reee", "name", "9", "doc"]
傳入2個(gè)參數(shù),表示起始位置與結(jié)束位置,但不包括結(jié)束位置所在的元素
var arr = [4, 2, 1, "reee", "name", "9", "doc"]; arr.slice(2, 4); // > [1, "reee"]
根據(jù)參數(shù)的不同,可以分別實(shí)現(xiàn)刪除,插入,替換元素的作用,會(huì)改變?cè)紨?shù)組
刪除
傳入2個(gè)參數(shù), 分別表示起始位置與要?jiǎng)h除元素的個(gè)數(shù),返回被刪除掉的元素組成的數(shù)組
var arr = [4, 2, 1, "reee", "name", "9", "doc"]; arr.splice(2, 3); // > [1, "reee", "name"] // arr: [4, 2, "9", "doc"]
插入
傳入3個(gè)參數(shù), [起始位置 | 要?jiǎng)h除的項(xiàng)數(shù) 為0 | 要插入的元素], 最終返回刪除掉的元素組成的數(shù)組,因?yàn)檫@里刪除項(xiàng)數(shù)為0,因此會(huì)返回空數(shù)組
var arr = [2, 4, 6]; arr.splice(2, 0, "red", "green"); // > [] // arr: [2, 4, "red", "green", 6]
替換
傳入三個(gè)參數(shù), [ 起始位置 | 要?jiǎng)h除的項(xiàng)數(shù) 為1 | 要插入的元素 ],最終返回被刪除掉的元素組成的數(shù)組
var arr = [2, 4, 9]; arr.splice(1, 1, ["tim", "tom"]); // > [4] // arr: [2, ["tim", "tom"], 9]
總結(jié) 因此,這個(gè)方法會(huì)因?yàn)閰?shù)的不同而實(shí)現(xiàn)不同的功能,所有的參數(shù)從頭到尾依次為
[ 起始位置 | 要?jiǎng)h除元素的個(gè)數(shù) | 要插入元素的值,可以寫入多個(gè)值 ]
驗(yàn)證數(shù)組中是否含有某個(gè)元素,返回第一個(gè)匹配到的元素在數(shù)組中所在的位置,如果沒有,則返回 -1
var arr = [2, "tim", 4, 5, 2]; arr.indexOf("tim"); // > 1 arr.indexOf("jake"); // > -1
驗(yàn)證數(shù)組中是否含有某個(gè)元素,不過(guò)是從數(shù)組尾部開始查找,返回第一個(gè)匹配到的元素所在的位置,如果沒有,則返回-1
var arr = [2, "tim", 4, 5, 2]; arr.lastIndexOf("tim"); // > 1 arr.indexOf("jake"); // > -1
IE6, 7, 8 不支持indexOf與lastIndexOf方法
對(duì)數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),如果該函數(shù)對(duì)每一項(xiàng)都返回true,則返回true。會(huì)有一個(gè)函數(shù)作為every的參數(shù),該函數(shù)也有3個(gè)參數(shù),分別為
[ 調(diào)用every的數(shù)組的每一項(xiàng)元素 | 對(duì)應(yīng)元素所在的位置 | 表示該數(shù)組 ]
var numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1]; var everyRes = numbers.every(function(item, index, array) { return item > 2; }) // > false
對(duì)數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),如果該函數(shù)對(duì)其中一項(xiàng)返回true,則返回true。會(huì)有一個(gè)函數(shù)作為every的參數(shù),該函數(shù)也有3個(gè)參數(shù),分別為
[ 調(diào)用every的數(shù)組的每一項(xiàng)元素 | 對(duì)應(yīng)元素所在的位置 | 表示該數(shù)組 ]
var numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1]; var everyRes = numbers.some(function(item, index, array) { return item > 2; }) // > true
過(guò)濾方法。返回滿足條件的元素組成的數(shù)組。fn的參數(shù)為
[ 調(diào)用every的數(shù)組的每一項(xiàng)元素 | 對(duì)應(yīng)元素所在的位置 | 表示該數(shù)組 ]
var numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1]; var everyRes = numbers.filter(function(item, index, array) { return item > 2; }) // > [ 3, 4, 5, 4, 3 ]
對(duì)數(shù)組的每一項(xiàng)進(jìn)行計(jì)算等處理,返回處理結(jié)果組成的數(shù)組,fn的參數(shù)為
[ 調(diào)用every的數(shù)組的每一項(xiàng)元素 | 對(duì)應(yīng)元素所在的位置 | 表示該數(shù)組 ]
var numbers = [1, 2, 3, 3, 2, 1]; var everyRes = numbers.map(function(item, index, array) { return item > 2; }) // >[false, false, true, true, false, false]
遍歷數(shù)組,沒有返回值,fn的參數(shù)為
[ 調(diào)用every的數(shù)組的每一項(xiàng)元素 | 對(duì)應(yīng)元素所在的位置 | 表示該數(shù)組 ]
numbers.forEach(function(item, index) { // do something })
縮減方法。fn的參數(shù)為
[ 前一個(gè)元素 | 當(dāng)前元素,從1開始 | 后一個(gè)元素的序列,從1開始計(jì)數(shù) | 表示該數(shù)組 ]
var values = [1, 2, 3, 4, 5]; var sum = values.reduce(function(prev, cur, index, array) { return prev + cur; }) // > 15 //每一次迭代之后的結(jié)果分別為 // [3, 3, 4, 5] // [6, 4, 5] // [10, 5] // 15
與reduce一模一樣,只是方向相反。
jQuery相關(guān)方法遍歷數(shù)組或者對(duì)象,fn有2個(gè)參數(shù),分別為, 比原生的for in 更加健壯
[ 數(shù)組的索引或者對(duì)象的key值 | 索引或者key值對(duì)應(yīng)的value值 ]
var arr = [1, 2, 3]; $.each(arr, function(key, value) { // do something });
跳過(guò)一次循環(huán) return | return true
終止循環(huán) return false
過(guò)濾方法,功能類同原生中的arr.filter(fn)。此處fn的參數(shù)如下
[ value: 對(duì)象/數(shù)組的值 | key值或者序列 ]
var arr = [ 1, 3, 6, 4 ]; $.grep(arr, function(val, key) { return val >= 3; }); // > [3, 6, 4] // arr : [ 1, 3, 6, 4 ] 不會(huì)改變
對(duì)每項(xiàng)進(jìn)行處理,返回處理結(jié)果組成的數(shù)組,此處fn的參數(shù)如下
[ value: 對(duì)象/數(shù)組的值 | key值或者序列 ]
var arr = [1, 2, 5, 3]; $.map(arr, function(val, key) { return val * 10; }) // > [10, 30, 30, 20, 10] // 原數(shù)組不受影響
檢測(cè)某一個(gè)元素item是否存在與數(shù)組之中,返回其所在的位置,如果不在,則返回-1
$.inArray(3, [1, 2, 3]); // > 2
合并數(shù)組,會(huì)改變第一個(gè)參數(shù)的數(shù)組為合并之后的數(shù)組,返回合并之后的數(shù)組
var arr = [1, 3, 4]; var arr2 = [4, 3, 1]; $.merge(arr, arr2); // > [1, 3, 4, 4, 3, 1] // 為了防止第一個(gè)數(shù)組被改變,可以使用下面的方式來(lái)寫 $.merge($.merge([], arr), arr2);
過(guò)濾DOM數(shù)組中重復(fù)的元素
將類數(shù)組對(duì)象轉(zhuǎn)換為數(shù)組
將jQuery對(duì)象集合恢復(fù)成DOM數(shù)組
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/91581.html
摘要:具體內(nèi)容請(qǐng)參考。感謝大家閱讀,另外,在這邊幫朋友推一個(gè)愛心眾籌,希望大家能夠奉獻(xiàn)點(diǎn)愛心,朋友母親,身患直腸癌,目前在北京武警總醫(yī)院接收治療,可留言留下您的聯(lián)系方式,日后感激大家 判斷數(shù)組是否包含某一特定元素是很常見的需求,javascript中有很多實(shí)現(xiàn)方法,今天有空匯總了一下,按兼容性由強(qiáng)到弱排序,返回類型一律為boolean: 假設(shè)數(shù)組為arr,目標(biāo)元素為target 循環(huán)遍歷: ...
摘要:本文對(duì)種排序方法進(jìn)行匯總。自頂向下的歸并排序算法歸并排序自頂向下分治思想的最經(jīng)典的一個(gè)例子。另外,快排序的內(nèi)循環(huán)比大多數(shù)排序算法都短?;舅惴炫判蚴且环N分治的算法,將一個(gè)數(shù)組分成兩個(gè)子數(shù)組,將兩部分獨(dú)立排序。 本文對(duì)9種排序方法進(jìn)行匯總。分別是: 插入排序 選擇排序 歸并排序 冒泡排序 堆排序 快排序 計(jì)數(shù)排序 基數(shù)排序 桶排序。參照《算法》第四版這本書,把排序需要的公共的方法抽象出...
摘要:示例語(yǔ)法作用方法用于刪除并返回?cái)?shù)組的最后一個(gè)元素。返回值一個(gè)新的字符串,該字符串值包含的一個(gè)子字符串,其內(nèi)容是從處到處的所有字符,其長(zhǎng)度為減。返回值一個(gè)新的字符串,包含從的包括所指的字符處開始的個(gè)字符。 1.concat()語(yǔ)法:arrayObject.concat(array1,array2,......,arrayn)作用:concat() 方法用于連接兩個(gè)或多個(gè)數(shù)組。特征:該方法...
摘要:方法為數(shù)組中的每個(gè)元素都調(diào)用一次函數(shù)執(zhí)行如果沒有符合條件的元素返回對(duì)于空數(shù)組,函數(shù)是不會(huì)執(zhí)行的。不改變?cè)瓟?shù)組和差不多,默認(rèn)返回的是索引。 1. length屬性 && 檢測(cè)數(shù)組 length屬性不是只讀,可以設(shè)置該屬性,從數(shù)組的末尾移除項(xiàng)或添加新項(xiàng) 檢測(cè)數(shù)組: 一個(gè)全局作用域下(一個(gè)網(wǎng)頁(yè)),使用instanceof 兩個(gè)以上不同的全局執(zhí)行環(huán)境(網(wǎng)頁(yè)包含多個(gè)框架),使用Array....
摘要:將輸出新數(shù)組判斷數(shù)組中的每一項(xiàng)是否都滿足條件,都滿足返回,此方法相較于之前的幾個(gè)方法,返回值有差異,是一個(gè)布爾值。輸出數(shù)組用于將一組值轉(zhuǎn)化為數(shù)組輸出數(shù)組返回一個(gè)布爾值,表示某個(gè)數(shù)組中是否包含給定的值。 1、join(sep):將數(shù)組元素組合成字符串。以sep為分隔符,省略的話則默認(rèn)使用逗號(hào)為分隔符。 var arr = [a,b,c]; console.log(arr.join(-))...
摘要:月下半旬攻略道題,目前已攻略題。目前簡(jiǎn)單難度攻略已經(jīng)到題,所以后面會(huì)調(diào)整自己,在刷算法與數(shù)據(jù)結(jié)構(gòu)的同時(shí),攻略中等難度的題目。 Create by jsliang on 2019-07-30 16:15:37 Recently revised in 2019-07-30 17:04:20 7 月下半旬攻略 45 道題,目前已攻略 100 題。 一 目錄 不折騰的前端,和咸魚有什么區(qū)別...
閱讀 1995·2021-11-11 16:55
閱讀 2215·2021-10-08 10:13
閱讀 806·2019-08-30 11:01
閱讀 2227·2019-08-29 13:19
閱讀 3346·2019-08-28 18:18
閱讀 2678·2019-08-26 13:26
閱讀 635·2019-08-26 11:40
閱讀 1944·2019-08-23 17:17