摘要:判斷是否為數(shù)組操作符運(yùn)算符會返回一個(gè)值,指出對象是否是特定類的一個(gè)實(shí)例。數(shù)組迭代使用指定的函數(shù)測試所有元素,并創(chuàng)建一個(gè)包含所有通過測試的元素的新數(shù)組。讓數(shù)組的每一項(xiàng)都執(zhí)行一次給定的函數(shù)。遍歷數(shù)組是對鍵名的遍歷是對鍵值的遍歷是對鍵值對的遍歷。
數(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ù)組并指定長度,注意不是上限,是長度 var arrayObj = new Array([element0[, element1[, ...[, elementN]]]]); //創(chuàng)建一個(gè)數(shù)組并賦值數(shù)組的添加
push()方法將一個(gè)或多個(gè)新元素添加到數(shù)組結(jié)尾,并返回?cái)?shù)組新長度,數(shù)組不變
var arr = [1] console.log(arr.push(2)) //2 console.log(arr) //[1, 2]
unshift()方法將一個(gè)或多個(gè)新元素添加到數(shù)組頭部,并返回?cái)?shù)組新長度,數(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開始的指定數(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 對應(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(); //對數(shù)組元素排序,返回?cái)?shù)組地址數(shù)組元素的字符串化
join()方法是一個(gè)非常實(shí)用的方法,它把當(dāng)前Array的每個(gè)元素都用指定的字符串連接起來,然后返回連接后的字符串:
arrayObj.join(separator); //返回字符串,這個(gè)字符串將數(shù)組的每一個(gè)元素值連接在一起,中間用 separator 隔開。 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)算符會返回一個(gè) Boolean 值,指出對象是否是特定類的一個(gè)實(shí)例。
var arrayStr=new Array("1","2","3","4","5"); alert(arrayStr instanceof Array); //true
Array.isArray()用來判斷某個(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ù)測試所有元素,并創(chuàng)建一個(gè)包含所有通過測試的元素的新數(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()測試數(shù)組的所有元素是否都通過了指定函數(shù)的測試。
//檢測數(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()測試數(shù)組中的某些元素是否通過了指定函數(shù)的測試。
//檢測在數(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è)值(從左到右)開始縮減,最終為一個(gè)值。
語法: 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()用于將兩類對象轉(zhuǎn)為真正的數(shù)組:類似數(shù)組的對象(array-like object)和可遍歷(iterable)的對象(包括ES6新增的數(shù)據(jù)結(jié)構(gòu)Set和Map)。
let arrayLike = { "0": "a", "1": "b", "2": "c", length: 3 }; // ES6的寫法 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()`是對鍵名的遍歷
for (let index of ["a", "b"].keys()) { console.log(index); } // 0 // 1
values()是對鍵值的遍歷
for (let elem of ["a", "b"].values()) { console.log(elem); } // "a" // "b"
entries()是對鍵值對的遍歷。
for (let [index, elem] of ["a", "b"].entries()) { console.log(index, elem); } // 0 "a" // 1 "b"
includes()
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/93622.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ù)組分類 關(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為類數(shù)組對象。方法數(shù)組的拼接,,指被拼接的對象數(shù)組,為數(shù)組。如果為負(fù),則將其視為,其中為數(shù)組的長度。而提供了數(shù)組反轉(zhuǎn)和排序來對數(shù)組進(jìn)行重排序。用好原生,你的代碼將顯得干凈,有趣。 前言 最近工作做數(shù)據(jù)交互展示,常和數(shù)據(jù)打交道,而隨之而來的就是遇見后端傳來的各種各樣的數(shù)組,我需要用各式各樣的方法來變換這些數(shù)據(jù),來最好的展示這些數(shù)據(jù);很多東西久了沒用就容易忘...
摘要:隊(duì)列的操作方式和棧類似,唯一的區(qū)別在于隊(duì)列只允許新數(shù)據(jù)在后端進(jìn)行添加。 前言 看過筆者前兩篇介紹的Java版數(shù)據(jù)結(jié)構(gòu)數(shù)組和棧的盆友,都給予了筆者一致的好評,在這里筆者感謝大家的認(rèn)可!!! 由于本章介紹的數(shù)據(jù)結(jié)構(gòu)是隊(duì)列,在隊(duì)列的實(shí)現(xiàn)上會基于前面寫的動(dòng)態(tài)數(shù)組來實(shí)現(xiàn),而隊(duì)列又和棧不論是從特點(diǎn)上和操作上都有類似之處,所以在這里對這兩種數(shù)據(jù)結(jié)構(gòu)不了解的朋友,可以去看一下筆者前兩篇文章介紹的數(shù)據(jù)結(jié)...
摘要:數(shù)組的構(gòu)造函數(shù)由于數(shù)組的構(gòu)造函數(shù)在處理參數(shù)時(shí)的不確定性,因此強(qiáng)烈建議使用符號來創(chuàng)建一個(gè)新數(shù)組。總結(jié)綜上所述,我們應(yīng)該盡量使用來創(chuàng)建新函數(shù),而不是數(shù)組的構(gòu)造函數(shù),這樣代碼將有更好的可讀性。 數(shù)組的構(gòu)造函數(shù) 由于數(shù)組的構(gòu)造函數(shù)在處理參數(shù)時(shí)的不確定性,因此強(qiáng)烈建議使用 [] 符號來創(chuàng)建一個(gè)新數(shù)組。 [1, 2, 3]; // Result: [1, 2, 3] new Array(1, ...
摘要:常規(guī)元素,不能表示為或雙精度的值。元素種類可從過渡轉(zhuǎn)變?yōu)椤_@是一個(gè)簡化的可視化,僅顯示最常見的元素種類只能通過格子向下過渡。目前有種不同的元素種類,每種元素都有自己的一組可能的優(yōu)化。再次重申更具體的元素種類可以進(jìn)行更細(xì)粒度的優(yōu)化。 原文:Elements kinds in V8 JavaScript 對象可以具有與它們相關(guān)聯(lián)的任意屬性。對象屬性的名稱可以包含任何字符。JavaScrip...
摘要:形式參數(shù)當(dāng)函數(shù)調(diào)用完成之后就自動(dòng)銷毀了。函數(shù)調(diào)用傳值調(diào)用函數(shù)的形參和實(shí)參分別占有不同內(nèi)存塊,對形參的修改不會影響實(shí)參。函數(shù)的聲明一般出現(xiàn)在函數(shù)的使用之前。它其實(shí)就數(shù)組訪問的操作符。 ...
閱讀 2543·2023-04-26 00:56
閱讀 2000·2021-10-25 09:46
閱讀 1236·2019-10-29 15:13
閱讀 811·2019-08-30 15:54
閱讀 2190·2019-08-29 17:10
閱讀 2612·2019-08-29 15:43
閱讀 497·2019-08-29 15:28
閱讀 3022·2019-08-29 13:24