摘要:判斷是否為數組操作符運算符會返回一個值,指出對象是否是特定類的一個實例。數組迭代使用指定的函數測試所有元素,并創建一個包含所有通過測試的元素的新數組。讓數組的每一項都執行一次給定的函數。遍歷數組是對鍵名的遍歷是對鍵值的遍歷是對鍵值對的遍歷。
數組的創建
var arrayObj = []; //普通數組創建 var arrayObj = new Array(); //創建一個數組 var arrayObj = new Array([size]); //創建一個數組并指定長度,注意不是上限,是長度 var arrayObj = new Array([element0[, element1[, ...[, elementN]]]]); //創建一個數組并賦值數組的添加
push()方法將一個或多個新元素添加到數組結尾,并返回數組新長度,數組不變
var arr = [1] console.log(arr.push(2)) //2 console.log(arr) //[1, 2]
unshift()方法將一個或多個新元素添加到數組頭部,并返回數組新長度,數組不變
var arr = [1] console.log(arr.unshift(2)) //2 console.log(arr) //[2, 1]
splice()將一個或多個新元素插入到數組的指定位置,插入位置的元素自動后移,返回""。
var arr = [1,2,3,4,5] arr.splice(2,0,"insert") //表示在第二個位置插入,刪除0個元素,返回[] console.log(arr) //[1, 2, "insert", 3, 4, 5] var newArr = [1,2,3,4,5] newArr.splice(2,1,"insert") //表示刪除第二個位置后的1個元素并插入 console.log(newArr) //[1, 2, "insert", 4, 5]數組的刪除
pop()移除最后一個元素并返回該元素值
shift()移除最前一個元素并返回該元素值,數組中元素自動前移
splice(deletePos,deleteCount)刪除從指定位置deletePos開始的指定數量deleteCount的元素,數組形式返回所移除的元素
數組的截取和合并concat()將多個數組(也可以是字符串,或者是數組和字符串的混合)連接為一個數組,返回連接好的新的數組
var a = [1] var b = [2] a.concat(b) //[1,2] 既不是a也不是b
slice(start, [end])以數組的形式返回數組的一部分,注意不包括 end 對應的元素,如果省略 end 將復制 start 之后的所有元素
數組的拷貝arrayObj.slice(0); //返回數組的拷貝數組,注意是一個新的數組,不是指向 arrayObj.concat(); //返回數組的拷貝數組,注意是一個新的數組,不是指向數組元素的排序
arrayObj.reverse(); //反轉元素(最前的排到最后、最后的排到最前),返回數組地址 arrayObj.sort(); //對數組元素排序,返回數組地址數組元素的字符串化
join()方法是一個非常實用的方法,它把當前Array的每個元素都用指定的字符串連接起來,然后返回連接后的字符串:
arrayObj.join(separator); //返回字符串,這個字符串將數組的每一個元素值連接在一起,中間用 separator 隔開。 var arr = ["A", "B", "C", 1, 2, 3]; arr.join("-"); // "A-B-C-1-2-3"數組的查找
indexOf()
lastIndexOf()
find()方法,用于找出第一個符合條件的數組成員
find方法的回調函數可以接受三個參數,依次為當前的值、當前的位置和原數組。
[1, 5, 10, 15].find(function(value, index, arr) { return value > 9; }) // 10
findIndex()返回第一個符合條件的數組成員的位置,如果所有成員都不符合條件,則返回-1。
[1, 5, 10, 15].findIndex(function(value, index, arr) { return value > 9; }) // 2判斷是否為數組
typeof 操作符
var arr=new Array("1","2","3","4","5"); alert(typeof(arr)); // Object
instanceof()運算符會返回一個 Boolean 值,指出對象是否是特定類的一個實例。
var arrayStr=new Array("1","2","3","4","5"); alert(arrayStr instanceof Array); //true
Array.isArray()用來判斷某個值是否為數組。如果是,則返回 true,否則返回 false。
// 下面的函數調用都返回 true Array.isArray([]); Array.isArray([1]); Array.isArray(new Array()); // 鮮為人知的事實:其實 Array.prototype 也是一個數組。 Array.isArray(Array.prototype);數組迭代
filter()使用指定的函數測試所有元素,并創建一個包含所有通過測試的元素的新數組。
function isBigEnough(element) { return element >= 10; } var filtered = [12, 5, 8, 130, 44].filter(isBigEnough); // filtered is [12, 130, 44]
forEach()讓數組的每一項都執行一次給定的函數。
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()測試數組的所有元素是否都通過了指定函數的測試。
//檢測數組中的所有元素是否都大于 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()返回一個由原數組中的每個元素調用一個指定方法后的返回值組成的新數組。
const arr = [1,2,3] arr.map((item,index) => { console.log(item) })
some()測試數組中的某些元素是否通過了指定函數的測試。
//檢測在數組中是否有元素大于 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()接收一個函數作為累加器(accumulator),數組中的每個值(從左到右)開始縮減,最終為一個值。
語法: arr.reduce(callback,[initialValue]) callback:執行數組中每個值的函數,包含四個參數
previousValue 上一次調用回調返回的值,或者是提供的初始值(initialValue)
currentValue 數組中當前被處理的元素
index 當前元素在數組中的索引
array 調用 reduce 的數組 initialValue: 作為第一次調用 callback 的第一個參數。
var total = [0, 1, 2, 3].reduce(function(a, b) { return a + b; }); // total == 6
Array.from()用于將兩類對象轉為真正的數組:類似數組的對象(array-like object)和可遍歷(iterable)的對象(包括ES6新增的數據結構Set和Map)。
let arrayLike = { "0": "a", "1": "b", "2": "c", length: 3 }; // ES6的寫法 let arr2 = Array.from(arrayLike); // ["a", "b", "c"]
Array.of()方法用于將一組值,轉換為數組。
Array.of(3, 11, 8) // [3,11,8] Array.of(3) // [3] Array.of(3).length // 1
fill()方法使用給定值,填充一個數組。
["a", "b", "c"].fill(7) // [7, 7, 7] new Array(3).fill(7) // [7, 7, 7]
fill方法還可以接受第二個和第三個參數,用于指定填充的起始位置和結束位置。
["a", "b", "c"].fill(7, 1, 2) // ["a", 7, "c"]遍歷數組
·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()
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/93622.html
摘要:函數的因為也擁有屬性,所以其被稱為類數組對象。方法數組的拼接,,指被拼接的對象數組,為數組。如果為負,則將其視為,其中為數組的長度。而提供了數組反轉和排序來對數組進行重排序。用好原生,你的代碼將顯得干凈,有趣。 前言 最近工作做數據交互展示,常和數據打交道,而隨之而來的就是遇見后端傳來的各種各樣的數組,我需要用各式各樣的方法來變換這些數據,來最好的展示這些數據;很多東西久了沒用就容易忘...
摘要:隊列的操作方式和棧類似,唯一的區別在于隊列只允許新數據在后端進行添加。 前言 看過筆者前兩篇介紹的Java版數據結構數組和棧的盆友,都給予了筆者一致的好評,在這里筆者感謝大家的認可?。。?由于本章介紹的數據結構是隊列,在隊列的實現上會基于前面寫的動態數組來實現,而隊列又和棧不論是從特點上和操作上都有類似之處,所以在這里對這兩種數據結構不了解的朋友,可以去看一下筆者前兩篇文章介紹的數據結...
摘要:數組的構造函數由于數組的構造函數在處理參數時的不確定性,因此強烈建議使用符號來創建一個新數組??偨Y綜上所述,我們應該盡量使用來創建新函數,而不是數組的構造函數,這樣代碼將有更好的可讀性。 數組的構造函數 由于數組的構造函數在處理參數時的不確定性,因此強烈建議使用 [] 符號來創建一個新數組。 [1, 2, 3]; // Result: [1, 2, 3] new Array(1, ...
摘要:常規元素,不能表示為或雙精度的值。元素種類可從過渡轉變為。這是一個簡化的可視化,僅顯示最常見的元素種類只能通過格子向下過渡。目前有種不同的元素種類,每種元素都有自己的一組可能的優化。再次重申更具體的元素種類可以進行更細粒度的優化。 原文:Elements kinds in V8 JavaScript 對象可以具有與它們相關聯的任意屬性。對象屬性的名稱可以包含任何字符。JavaScrip...
摘要:形式參數當函數調用完成之后就自動銷毀了。函數調用傳值調用函數的形參和實參分別占有不同內存塊,對形參的修改不會影響實參。函數的聲明一般出現在函數的使用之前。它其實就數組訪問的操作符。 ...
閱讀 2555·2023-04-26 00:56
閱讀 2009·2021-10-25 09:46
閱讀 1242·2019-10-29 15:13
閱讀 818·2019-08-30 15:54
閱讀 2199·2019-08-29 17:10
閱讀 2619·2019-08-29 15:43
閱讀 503·2019-08-29 15:28
閱讀 3031·2019-08-29 13:24