摘要:判斷是否為數(shù)組操作符運(yùn)算符會(huì)返回一個(gè)值,指出對(duì)象是否是特定類(lèi)的一個(gè)實(shí)例。數(shù)組迭代使用指定的函數(shù)測(cè)試所有元素,并創(chuàng)建一個(gè)包含所有通過(guò)測(cè)試的元素的新數(shù)組。讓數(shù)組的每一項(xiàng)都執(zhí)行一次給定的函數(shù)。遍歷數(shù)組是對(duì)鍵名的遍歷是對(duì)鍵值的遍歷是對(duì)鍵值對(duì)的遍歷。
數(shù)組的創(chuàng)建
var arrayObj = []; //普通數(shù)組創(chuàng)建 var arrayObj = new Array(); //創(chuàng)建一個(gè)數(shù)組 var arrayObj = new Array([size]); //創(chuàng)建一個(gè)數(shù)組并指定長(zhǎng)度,注意不是上限,是長(zhǎng)度 var arrayObj = new Array([element0[, element1[, ...[, elementN]]]]); //創(chuàng)建一個(gè)數(shù)組并賦值數(shù)組的添加
push()方法將一個(gè)或多個(gè)新元素添加到數(shù)組結(jié)尾,并返回?cái)?shù)組新長(zhǎng)度,數(shù)組不變
var arr = [1] console.log(arr.push(2)) //2 console.log(arr) //[1, 2]
unshift()方法將一個(gè)或多個(gè)新元素添加到數(shù)組頭部,并返回?cái)?shù)組新長(zhǎng)度,數(shù)組不變
var arr = [1] console.log(arr.unshift(2)) //2 console.log(arr) //[2, 1]
splice()將一個(gè)或多個(gè)新元素插入到數(shù)組的指定位置,插入位置的元素自動(dòng)后移,返回""。
var arr = [1,2,3,4,5] arr.splice(2,0,"insert") //表示在第二個(gè)位置插入,刪除0個(gè)元素,返回[] console.log(arr) //[1, 2, "insert", 3, 4, 5] var newArr = [1,2,3,4,5] newArr.splice(2,1,"insert") //表示刪除第二個(gè)位置后的1個(gè)元素并插入 console.log(newArr) //[1, 2, "insert", 4, 5]數(shù)組的刪除
pop()移除最后一個(gè)元素并返回該元素值
shift()移除最前一個(gè)元素并返回該元素值,數(shù)組中元素自動(dòng)前移
splice(deletePos,deleteCount)刪除從指定位置deletePos開(kāi)始的指定數(shù)量deleteCount的元素,數(shù)組形式返回所移除的元素
數(shù)組的截取和合并concat()將多個(gè)數(shù)組(也可以是字符串,或者是數(shù)組和字符串的混合)連接為一個(gè)數(shù)組,返回連接好的新的數(shù)組
var a = [1] var b = [2] a.concat(b) //[1,2] 既不是a也不是b
slice(start, [end])以數(shù)組的形式返回?cái)?shù)組的一部分,注意不包括 end 對(duì)應(yīng)的元素,如果省略 end 將復(fù)制 start 之后的所有元素
數(shù)組的拷貝arrayObj.slice(0); //返回?cái)?shù)組的拷貝數(shù)組,注意是一個(gè)新的數(shù)組,不是指向 arrayObj.concat(); //返回?cái)?shù)組的拷貝數(shù)組,注意是一個(gè)新的數(shù)組,不是指向數(shù)組元素的排序
arrayObj.reverse(); //反轉(zhuǎn)元素(最前的排到最后、最后的排到最前),返回?cái)?shù)組地址 arrayObj.sort(); //對(duì)數(shù)組元素排序,返回?cái)?shù)組地址數(shù)組元素的字符串化
join()方法是一個(gè)非常實(shí)用的方法,它把當(dāng)前Array的每個(gè)元素都用指定的字符串連接起來(lái),然后返回連接后的字符串:
arrayObj.join(separator); //返回字符串,這個(gè)字符串將數(shù)組的每一個(gè)元素值連接在一起,中間用 separator 隔開(kāi)。 var arr = ["A", "B", "C", 1, 2, 3]; arr.join("-"); // "A-B-C-1-2-3"數(shù)組的查找
indexOf()
lastIndexOf()
find()方法,用于找出第一個(gè)符合條件的數(shù)組成員
find方法的回調(diào)函數(shù)可以接受三個(gè)參數(shù),依次為當(dāng)前的值、當(dāng)前的位置和原數(shù)組。
[1, 5, 10, 15].find(function(value, index, arr) { return value > 9; }) // 10
findIndex()返回第一個(gè)符合條件的數(shù)組成員的位置,如果所有成員都不符合條件,則返回-1。
[1, 5, 10, 15].findIndex(function(value, index, arr) { return value > 9; }) // 2判斷是否為數(shù)組
typeof 操作符
var arr=new Array("1","2","3","4","5"); alert(typeof(arr)); // Object
instanceof()運(yùn)算符會(huì)返回一個(gè) Boolean 值,指出對(duì)象是否是特定類(lèi)的一個(gè)實(shí)例。
var arrayStr=new Array("1","2","3","4","5"); alert(arrayStr instanceof Array); //true
Array.isArray()用來(lái)判斷某個(gè)值是否為數(shù)組。如果是,則返回 true,否則返回 false。
// 下面的函數(shù)調(diào)用都返回 true Array.isArray([]); Array.isArray([1]); Array.isArray(new Array()); // 鮮為人知的事實(shí):其實(shí) Array.prototype 也是一個(gè)數(shù)組。 Array.isArray(Array.prototype);數(shù)組迭代
filter()使用指定的函數(shù)測(cè)試所有元素,并創(chuàng)建一個(gè)包含所有通過(guò)測(cè)試的元素的新數(shù)組。
function isBigEnough(element) { return element >= 10; } var filtered = [12, 5, 8, 130, 44].filter(isBigEnough); // filtered is [12, 130, 44]
forEach()讓數(shù)組的每一項(xiàng)都執(zhí)行一次給定的函數(shù)。
function logArrayElements(element, index, array) { console.log("a[" + index + "] = " + element); } [2, 5, 9].forEach(logArrayElements); // logs: // a[0] = 2 // a[1] = 5 // a[2] = 9
every()測(cè)試數(shù)組的所有元素是否都通過(guò)了指定函數(shù)的測(cè)試。
//檢測(cè)數(shù)組中的所有元素是否都大于 10 function isBigEnough(element, index, array) { return (element >= 10); } var passed = [12, 5, 8, 130, 44].every(isBigEnough); // passed is false passed = [12, 54, 18, 130, 44].every(isBigEnough); // passed is true
map()返回一個(gè)由原數(shù)組中的每個(gè)元素調(diào)用一個(gè)指定方法后的返回值組成的新數(shù)組。
const arr = [1,2,3] arr.map((item,index) => { console.log(item) })
some()測(cè)試數(shù)組中的某些元素是否通過(guò)了指定函數(shù)的測(cè)試。
//檢測(cè)在數(shù)組中是否有元素大于 10。 function isBigEnough(element, index, array) { return (element >= 10); } var passed = [2, 5, 8, 1, 4].some(isBigEnough); // passed is false passed = [12, 5, 8, 1, 4].some(isBigEnough); // passed is true
reduce()接收一個(gè)函數(shù)作為累加器(accumulator),數(shù)組中的每個(gè)值(從左到右)開(kāi)始縮減,最終為一個(gè)值。
語(yǔ)法: arr.reduce(callback,[initialValue])
callback:執(zhí)行數(shù)組中每個(gè)值的函數(shù),包含四個(gè)參數(shù)
previousValue上一次調(diào)用回調(diào)返回的值,或者是提供的初始(initialValue)
currentValue 數(shù)組中當(dāng)前被處理的元素
index 當(dāng)前元素在數(shù)組中的索引
array 調(diào)用 reduce 的數(shù)組 initialValue: 作為第一次調(diào)用 callback 的第一個(gè)參數(shù)。
var total = [0, 1, 2, 3].reduce(function(a, b) { return a + b; }); // total == 6
Array.from()用于將兩類(lèi)對(duì)象轉(zhuǎn)為真正的數(shù)組:類(lèi)似數(shù)組的對(duì)象(array-like object)和可遍歷(iterable)的對(duì)象(包括ES6新增的數(shù)據(jù)結(jié)構(gòu)Set和Map)。
let arrayLike = { "0": "a", "1": "b", "2": "c", length: 3 }; // ES6的寫(xiě)法 let arr2 = Array.from(arrayLike); // ["a", "b", "c"]
Array.of()方法用于將一組值,轉(zhuǎn)換為數(shù)組。
Array.of(3, 11, 8) // [3,11,8] Array.of(3) // [3] Array.of(3).length // 1
fill()方法使用給定值,填充一個(gè)數(shù)組。
["a", "b", "c"].fill(7) // [7, 7, 7] new Array(3).fill(7) // [7, 7, 7]
fill方法還可以接受第二個(gè)和第三個(gè)參數(shù),用于指定填充的起始位置和結(jié)束位置。
["a", "b", "c"].fill(7, 1, 2) // ["a", 7, "c"]遍歷數(shù)組
·keys()`是對(duì)鍵名的遍歷
for (let index of ["a", "b"].keys()) { console.log(index); } // 0 // 1
values()是對(duì)鍵值的遍歷
for (let elem of ["a", "b"].values()) { console.log(elem); } // "a" // "b"
entries()是對(duì)鍵值對(duì)的遍歷。
for (let [index, elem] of ["a", "b"].entries()) { console.log(index, elem); } // 0 "a" // 1 "b"
includes()
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/80512.html
摘要:李尋歡索引數(shù)組索引數(shù)組,元素的值和下標(biāo)不存在邏輯關(guān)系,而下標(biāo)只表示值索引位置。鍵和值,同時(shí)向下移動(dòng)指針獲得元素信息,返回的是,關(guān)聯(lián)和索引數(shù)組其中關(guān)聯(lián)數(shù)組部分。 數(shù)組 數(shù)據(jù)由元素組成,元素由鍵和值組成 數(shù)組分類(lèi) 關(guān)聯(lián)數(shù)組關(guān)聯(lián)數(shù)組,元素的下標(biāo)與元素的值存在邏輯上的關(guān)系,稱之為關(guān)聯(lián)數(shù)組。指的是,鍵和值之間存在管理。 $a1 = array(name => 李尋歡, age => 34); ...
摘要:函數(shù)的因?yàn)橐矒碛袑傩裕云浔环Q為類(lèi)數(shù)組對(duì)象。方法數(shù)組的拼接,,指被拼接的對(duì)象數(shù)組,為數(shù)組。如果為負(fù),則將其視為,其中為數(shù)組的長(zhǎng)度。而提供了數(shù)組反轉(zhuǎn)和排序來(lái)對(duì)數(shù)組進(jìn)行重排序。用好原生,你的代碼將顯得干凈,有趣。 前言 最近工作做數(shù)據(jù)交互展示,常和數(shù)據(jù)打交道,而隨之而來(lái)的就是遇見(jiàn)后端傳來(lái)的各種各樣的數(shù)組,我需要用各式各樣的方法來(lái)變換這些數(shù)據(jù),來(lái)最好的展示這些數(shù)據(jù);很多東西久了沒(méi)用就容易忘...
摘要:隊(duì)列的操作方式和棧類(lèi)似,唯一的區(qū)別在于隊(duì)列只允許新數(shù)據(jù)在后端進(jìn)行添加。 前言 看過(guò)筆者前兩篇介紹的Java版數(shù)據(jù)結(jié)構(gòu)數(shù)組和棧的盆友,都給予了筆者一致的好評(píng),在這里筆者感謝大家的認(rèn)可!!! 由于本章介紹的數(shù)據(jù)結(jié)構(gòu)是隊(duì)列,在隊(duì)列的實(shí)現(xiàn)上會(huì)基于前面寫(xiě)的動(dòng)態(tài)數(shù)組來(lái)實(shí)現(xiàn),而隊(duì)列又和棧不論是從特點(diǎn)上和操作上都有類(lèi)似之處,所以在這里對(duì)這兩種數(shù)據(jù)結(jié)構(gòu)不了解的朋友,可以去看一下筆者前兩篇文章介紹的數(shù)據(jù)結(jié)...
摘要:數(shù)組的構(gòu)造函數(shù)由于數(shù)組的構(gòu)造函數(shù)在處理參數(shù)時(shí)的不確定性,因此強(qiáng)烈建議使用符號(hào)來(lái)創(chuàng)建一個(gè)新數(shù)組。總結(jié)綜上所述,我們應(yīng)該盡量使用來(lái)創(chuàng)建新函數(shù),而不是數(shù)組的構(gòu)造函數(shù),這樣代碼將有更好的可讀性。 數(shù)組的構(gòu)造函數(shù) 由于數(shù)組的構(gòu)造函數(shù)在處理參數(shù)時(shí)的不確定性,因此強(qiáng)烈建議使用 [] 符號(hào)來(lái)創(chuàng)建一個(gè)新數(shù)組。 [1, 2, 3]; // Result: [1, 2, 3] new Array(1, ...
摘要:常規(guī)元素,不能表示為或雙精度的值。元素種類(lèi)可從過(guò)渡轉(zhuǎn)變?yōu)椤_@是一個(gè)簡(jiǎn)化的可視化,僅顯示最常見(jiàn)的元素種類(lèi)只能通過(guò)格子向下過(guò)渡。目前有種不同的元素種類(lèi),每種元素都有自己的一組可能的優(yōu)化。再次重申更具體的元素種類(lèi)可以進(jìn)行更細(xì)粒度的優(yōu)化。 原文:Elements kinds in V8 JavaScript 對(duì)象可以具有與它們相關(guān)聯(lián)的任意屬性。對(duì)象屬性的名稱可以包含任何字符。JavaScrip...
摘要:形式參數(shù)當(dāng)函數(shù)調(diào)用完成之后就自動(dòng)銷(xiāo)毀了。函數(shù)調(diào)用傳值調(diào)用函數(shù)的形參和實(shí)參分別占有不同內(nèi)存塊,對(duì)形參的修改不會(huì)影響實(shí)參。函數(shù)的聲明一般出現(xiàn)在函數(shù)的使用之前。它其實(shí)就數(shù)組訪問(wèn)的操作符。 ...
閱讀 1542·2023-04-26 00:20
閱讀 1132·2023-04-25 21:49
閱讀 814·2021-09-22 15:52
閱讀 587·2021-09-07 10:16
閱讀 979·2021-08-18 10:22
閱讀 2676·2019-08-30 14:07
閱讀 2246·2019-08-30 14:00
閱讀 2661·2019-08-30 13:00