摘要:例如返回是返回是的前兩個參數制定了需要刪除數組元素。注意一旦和確認該返回什么值它們就會停止遍歷數組元素。和和方法使用指定的函數將數組元素進行組合,生成單個值。
數組是值的有序集合。每個值叫做一個元素,而每個元素在數組中有一個位置,以數字表示,稱為索引。javascript的數組是無類型的:數組元素可以是任意類型,并且同一個數組中的不同元素也可能有不同的類型。
使用數組直接量是創建數組最簡單的方法,在方括號中將數組元素用逗號隔開即可。例如:
var empty = []; // 沒有元素的數組 var arr = [1, 2, 3]; // 有5個數值得數組 var mix = [1, true, "a"]; // 3個不同類型元素
如果省略數組直接量中的某個值,省略的元素將被賦予undefined值。例如:
var count = [1, , 3]; // 數組有3個元素,第二個元素為undefined
調用構造函數Array()是創建數組的另一種方法。可以用三種方式:
調用時候沒有參數
var a = new Array();
調用時有一個數值參數,它指定長度:
var a = new Array(10);
顯式指定兩個或多個數組元素或者數組的一個非數值元素:
var a = new Array(5, 4, 3, " test, test");
每個數組都有一個length屬性,就是這個屬性區別于常規的js對象。針對稠密數字,length屬性值代表數組中元素的個數,其值比數組中最大的所以大1:
[].length // => 0: 數組沒有元素 ["a", "b", "c"].length // => 3: 最大的索引為2,length為3
為了維持這一原則,數組有兩個特殊行為:
如果為一個數組元素賦值,它的索引i大于或等于數組長度時,length屬性的值將 設置為i+1
設置length屬性為一個小于當前長度非負整數n時,當前數組中那些大于或等于n的元素從中刪除。
var a = [1, 2, 3, 4]; a.length = 3; // 現在a為 [1, 2, 3]
push()方法在數組末尾增加一個或多個元素:
var arr = []; // 創建一個空數組 arr.push("a"); // 在末尾添加一個元素。arr = ["a"];
unshift()方法在數組首部插入一個元素,并且將其他元素依次移到更高的索引處:
var arr = [1, 2 ,3]; arr.unshift(0); // 此時arr = [0, 1, 2, 3]
pop()方法從末尾刪除一個元素,并返回被刪除的元素值。
shift()方法從數組頭部刪除一個元素。
一般使用for循環來遍歷數組元素。例如
var arr = [1, 2, 3]; for(var i=0, len= arr.length; i五 數組方法
join()
Array.join()方法將數組中所有元素都轉化為字符串并連接在一起,返回最后生成的字符串。如果不指定分隔符,默認使用逗號。var a = [1, 2, 3]; a.join(); // => "1,2,3" a.join(" "); // => "1 2 3" a.join(""); // => "123"Array.join()與String.split()方法的逆向操作,后者是將字符串分割成數組。
reverse()
Array.reverse()方法將數組中的元素顛倒順序,返回逆向數組。例如:var a = [1, 2, 3]; a.reverse(); // => [3, 2, 1]
sort()
Array.sort()將數組中的元素排序并返回排序后的數組。當不帶參數調用sort()時,數組元素以字母表順序排序。var arr = ["banana", "cherry", "apple"]; a.sort(); // a = ["apple", "banana", "cherry"]如果數組中包含undefined元素,它們會被排到數組的尾部。更多例子在index.js中。
concat()
Array.concat()創建并返回一個新數組,它的元素包括調用concat()的原始數組的元素和concat()的每個參數。如果這些參數中的任何一個自身是數組,則連接的是數組的元素,而非數組本身。var a = [1, 2, 3]; a.concat(4,5) // => [1,2,3,4,5] a.concat([4,5], [6,7]); // => [1,2,3,4,5,6,7]
slice()
Array.sliece方法返回指定數組的一個片段或者子數組。它的兩個參數分別制定了片段的開始和結束位置。返回的數組包含第一個參數指定的位置和所有到但不包含第二個參數指定位置之間的所有數組元素。如果只指定一個參數,返回的數組將包含從開始位置到數組結尾的所有元素。var a = [1,2,3,4,5]; a.slice(0, 3); // => [1,2,3] a.sliece(3); // => [4,5]
splice()
Array.splice()在數組中插入或刪除元素的通用方法。第一個參數制定了插入或者刪除的起始位置,第二個參數制定了應該從數組中刪除的元素個數,如果省略第二個參數,從起始位置到結尾的所有元素都將被刪除。返回一個由刪除元素組成的數組。例如:
var _arr = [1, 2, 3, 4, 5, 6, 7, 8]; _arr.splice(4); console.log(_arr); // 返回[5, 6, 7, 8];_arr是[1,2,3,4] _arr.splice(1, 2); console.log(_arr); // 返回[2, 3];_arr是[1,4]splice()的前兩個參數制定了需要刪除數組元素。后面的任意個數的參數指定了需要插入到數組中的元素,從第一個參數指定的位置開始插入。var a = [1, 2, 3, 4, 5]; a.splice(2, 0 , "a", "b"); // 返回[],a = [1, 2, "a", "b", 3, 4, 5]; a.splice(2, 2, [1,2], 3); // 返回["a","b"],a = [1,2,[1,2],3,3,4,5];注意:區別于concat(),splice()會插入數組本身而非數組的元素。
push()和pop():
push()在數組尾部添加一個或多個元素,并返回數組新的長度。 pop()刪除數組的最后一個元素,減小數組長度并返回它刪除的值。
unshift()和shift()
unshift()在數組的頭部添加一個或多個元素,并將已存在的元素移到更高索引的位置來獲得足夠的空間,最后返回數組新的長度。 shift()刪除數組的第一個元素并將其返回,然后把所有隨后的元素下移一個位置來填補頭部的空缺。六 ECMAScript 5中的數組方法
forEach()
從頭到尾遍歷數組,為每個元素調用指定的函數。使用三個參數調用該函數:數組元素、數組元素索引和數組本身。var data = [1,2,3,4,5]; var sum = 0; data.forEach(function(value){ sum += value; }); console.log(sum); // => 15
map()
將調用的數組的每個元素傳遞給指定的函數,并返回一個數組,它包含該函數的返回值。例如:var a_arr = [1, 2, 3]; var b = a_arr.map(function(x){ return x*x; }) console.log(b); // =>b = [1, 4, 9]
filter()
filter()方法返回的數組元素是調用的數組的一個子元素。傳遞的函數是用來邏輯判定的:該函數返回true或false。var a = [1,2,3,4,5]; var smalls = a.filter(function(x){ return x < 3; }); // => smalls = [1,2]
every()和some()
every()和some()方法是數組的邏輯判定:它們對數組元素應用指定的函數進行判定,返回true或false。 every()針對數組中的所有元素調用判定函數都返回true,它才返回true。 somt()數組中只殺有一個元素調用函數判定返回true,它就返回true。 注意:一旦every()和some()確認該返回什么值它們就會停止遍歷數組元素。
reduce()和reduceRight()
reduce()和reduceRight()方法使用指定的函數將數組元素進行組合,生成單個值。var _data = [1,2,3,4,5]; var sum = _data.reduce(function (x, y) { return x+y; }, 0); // 求和 => 15 var product = a.reduce(function (x, y) { return x*y; }, 1); // 求積 => 120 var max = a.reduce(function (x, y) { return x>y ? x : y; }); // 求最大值 => 5reduceRight()工作原理和reduce()一樣,不同的是它按照數組索引從高到低處理數組。
indexOf()和lastIndexOf()
搜索整個數組紅具有給定值的元素,返回找的第一份元素的索引或者如果沒有找到就返回-1。indexOf()從頭至尾搜索,lastIndexOf()則反向搜索。例如:var a = [0, 1, 2, 1, 0]; a.indexOf(1); // => 1 a.lastIndexOf(1); // => 3 a.indexOf(3); // => -1七 數組類型
使用Array.isArray()函數來判斷是否為數組。
Array.isArray([]); // => true Array.isArray({}); // => false
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/79619.html
摘要:知道如果我們將輸入數組中的每個值都轉換為布爾值,就可以刪除所有值為的元素,這就滿足了此挑戰的要求。 翻譯:瘋狂的技術宅https://medium.freecodecamp.o... 本文首發微信公眾號:前端先鋒歡迎關注,每天都給你推送新鮮的前端技術文章 引用自 MDN: falsy(虛值)是在 Boolean 上下文中已認定可轉換為‘假‘的值.JavaScript 在需要用到布...
摘要:對象在中,除了數字字符串布爾值這幾個簡單類型外,其他的都是對象。那么在函數對象中,這兩個屬性的有什么區別呢表示該函數對象的原型表示使用來執行該函數時這種函數一般成為構造函數,后面會講解,新創建的對象的原型。這時的函數通常稱為構造函數。。 本文原發于我的個人博客,經多次修改后發到sf上。本文仍在不斷修改中,最新版請訪問個人博客。 最近工作一直在用nodejs做開發,有了nodejs,...
摘要:專題系列共計篇,主要研究日常開發中一些功能點的實現,比如防抖節流去重類型判斷拷貝最值扁平柯里遞歸亂序排序等,特點是研究專題之函數組合專題系列第十六篇,講解函數組合,并且使用柯里化和函數組合實現模式需求我們需要寫一個函數,輸入,返回。 JavaScript 專題之從零實現 jQuery 的 extend JavaScritp 專題系列第七篇,講解如何從零實現一個 jQuery 的 ext...
摘要:數組的特別之處在于,當使用小于的非負整數作為屬性名時數組會自動維護其屬性值。返回的數組包含第一個參數指定的位置和所有到但不含第二個參數指定的位置之間的所有數組元素。數組中只需有一項滿足給定條件則返回。 概念 JavaScript數組是JavaScript對象的特殊形式。數組索引實際上和碰巧是整數的屬性名差不多,使用方括號訪問數組元素就像用方括號訪問對象的屬性一樣。JavaScript將...
摘要:數組數組概述數組是什么數組是值的有序集合數組中的每一個值叫做一個元素而每個元素在數組中都有一個唯一的位置這個位置用數字表示叫做索引數組用字符串表示叫做關聯數組數組是無類型的數組的元素可以是任何類型例如字符串數字值布爾值等而且每個數組中的不同 數組 數組概述 數組是什么 數組是值的有序集合 數組中的每一個值叫做一個元素 而每個元素在數組中都有一個唯一的位置這個位置用數字表示 叫做索引數組...
摘要:與稀疏數組對立的為密集數組,密集數組的索引會被持續的創建,并且其元素的數量等于其長度。創建一個長度為的數組,并初始化了個元素使用構造函數創建數組對象的時候,關鍵字是可以省略的。另外使用和刪除元素是影響數組的長度的。 說明:本文只總結了JavaScript數組在web端的行為,不包括NodeJs端的行為。本文不涉及類型化數組(TypedArray)的討論、總結。 一、什么是數組 數組的定...
閱讀 3255·2021-09-23 11:55
閱讀 2587·2021-09-13 10:33
閱讀 1656·2019-08-30 15:54
閱讀 3085·2019-08-30 15:54
閱讀 2357·2019-08-30 10:59
閱讀 2361·2019-08-29 17:08
閱讀 1793·2019-08-29 13:16
閱讀 3582·2019-08-26 12:25