成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

javascript中的數(shù)組

xinhaip / 2289人閱讀

摘要:例如返回是返回是的前兩個參數(shù)制定了需要刪除數(shù)組元素。注意一旦和確認(rèn)該返回什么值它們就會停止遍歷數(shù)組元素。和和方法使用指定的函數(shù)將數(shù)組元素進(jìn)行組合,生成單個值。

數(shù)組是值的有序集合。每個值叫做一個元素,而每個元素在數(shù)組中有一個位置,以數(shù)字表示,稱為索引。javascript的數(shù)組是無類型的:數(shù)組元素可以是任意類型,并且同一個數(shù)組中的不同元素也可能有不同的類型。
一 創(chuàng)建數(shù)組

使用數(shù)組直接量是創(chuàng)建數(shù)組最簡單的方法,在方括號中將數(shù)組元素用逗號隔開即可。例如:

    var empty = [];              // 沒有元素的數(shù)組
    var arr = [1, 2, 3];         // 有5個數(shù)值得數(shù)組
    var mix = [1, true, "a"];    // 3個不同類型元素

如果省略數(shù)組直接量中的某個值,省略的元素將被賦予undefined值。例如:

    var count = [1, , 3];        // 數(shù)組有3個元素,第二個元素為undefined

調(diào)用構(gòu)造函數(shù)Array()是創(chuàng)建數(shù)組的另一種方法。可以用三種方式:

調(diào)用時候沒有參數(shù)

    var a = new Array();

調(diào)用時有一個數(shù)值參數(shù),它指定長度:

    var a = new Array(10);

顯式指定兩個或多個數(shù)組元素或者數(shù)組的一個非數(shù)值元素:

    var a = new Array(5, 4, 3, " test, test");
二 數(shù)組長度

每個數(shù)組都有一個length屬性,就是這個屬性區(qū)別于常規(guī)的js對象。針對稠密數(shù)字,length屬性值代表數(shù)組中元素的個數(shù),其值比數(shù)組中最大的所以大1:

    [].length                  // => 0: 數(shù)組沒有元素
    ["a", "b", "c"].length     // => 3: 最大的索引為2,length為3

為了維持這一原則,數(shù)組有兩個特殊行為:

如果為一個數(shù)組元素賦值,它的索引i大于或等于數(shù)組長度時,length屬性的值將 設(shè)置為i+1

設(shè)置length屬性為一個小于當(dāng)前長度非負(fù)整數(shù)n時,當(dāng)前數(shù)組中那些大于或等于n的元素從中刪除。

var a = [1, 2, 3, 4];
a.length = 3;    // 現(xiàn)在a為 [1, 2, 3]

三 數(shù)組元素的添加和刪除

push()方法在數(shù)組末尾增加一個或多個元素:

    var arr = [];              // 創(chuàng)建一個空數(shù)組
    arr.push("a");             // 在末尾添加一個元素。arr = ["a"];

unshift()方法在數(shù)組首部插入一個元素,并且將其他元素依次移到更高的索引處:

    var arr = [1, 2 ,3];
    arr.unshift(0);          // 此時arr = [0, 1, 2, 3]

pop()方法從末尾刪除一個元素,并返回被刪除的元素值。
shift()方法從數(shù)組頭部刪除一個元素。

四 數(shù)組遍歷

一般使用for循環(huán)來遍歷數(shù)組元素。例如

    var arr = [1, 2, 3];
    for(var i=0, len= arr.length; i
五 數(shù)組方法

join()

Array.join()方法將數(shù)組中所有元素都轉(zhuǎn)化為字符串并連接在一起,返回最后生成的字符串。如果不指定分隔符,默認(rèn)使用逗號。
var a = [1, 2, 3];
a.join();         // => "1,2,3"
a.join(" ");      // => "1 2 3"
a.join("");       // => "123"
Array.join()與String.split()方法的逆向操作,后者是將字符串分割成數(shù)組。

reverse()

Array.reverse()方法將數(shù)組中的元素顛倒順序,返回逆向數(shù)組。例如:
var a = [1, 2, 3];
a.reverse();     // => [3, 2, 1]

sort()

Array.sort()將數(shù)組中的元素排序并返回排序后的數(shù)組。當(dāng)不帶參數(shù)調(diào)用sort()時,數(shù)組元素以字母表順序排序。
var arr = ["banana", "cherry", "apple"];
a.sort();                    // a = ["apple", "banana", "cherry"]
如果數(shù)組中包含undefined元素,它們會被排到數(shù)組的尾部。更多例子在index.js中。

concat()

Array.concat()創(chuàng)建并返回一個新數(shù)組,它的元素包括調(diào)用concat()的原始數(shù)組的元素和concat()的每個參數(shù)。如果這些參數(shù)中的任何一個自身是數(shù)組,則連接的是數(shù)組的元素,而非數(shù)組本身。
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方法返回指定數(shù)組的一個片段或者子數(shù)組。它的兩個參數(shù)分別制定了片段的開始和結(jié)束位置。返回的數(shù)組包含第一個參數(shù)指定的位置和所有到但不包含第二個參數(shù)指定位置之間的所有數(shù)組元素。如果只指定一個參數(shù),返回的數(shù)組將包含從開始位置到數(shù)組結(jié)尾的所有元素。
var a = [1,2,3,4,5];
a.slice(0, 3);       // => [1,2,3]
a.sliece(3);         // => [4,5]

splice()

Array.splice()在數(shù)組中插入或刪除元素的通用方法。第一個參數(shù)制定了插入或者刪除的起始位置,第二個參數(shù)制定了應(yīng)該從數(shù)組中刪除的元素個數(shù),如果省略第二個參數(shù),從起始位置到結(jié)尾的所有元素都將被刪除。返回一個由刪除元素組成的數(shù)組。

例如:

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()的前兩個參數(shù)制定了需要刪除數(shù)組元素。后面的任意個數(shù)的參數(shù)指定了需要插入到數(shù)組中的元素,從第一個參數(shù)指定的位置開始插入。
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];
注意:區(qū)別于concat(),splice()會插入數(shù)組本身而非數(shù)組的元素。

push()和pop():

push()在數(shù)組尾部添加一個或多個元素,并返回數(shù)組新的長度。

pop()刪除數(shù)組的最后一個元素,減小數(shù)組長度并返回它刪除的值。

unshift()和shift()

unshift()在數(shù)組的頭部添加一個或多個元素,并將已存在的元素移到更高索引的位置來獲得足夠的空間,最后返回數(shù)組新的長度。

shift()刪除數(shù)組的第一個元素并將其返回,然后把所有隨后的元素下移一個位置來填補(bǔ)頭部的空缺。

六 ECMAScript 5中的數(shù)組方法

forEach()

從頭到尾遍歷數(shù)組,為每個元素調(diào)用指定的函數(shù)。使用三個參數(shù)調(diào)用該函數(shù):數(shù)組元素、數(shù)組元素索引和數(shù)組本身。
var data = [1,2,3,4,5];
var sum = 0;
data.forEach(function(value){
sum += value;
});
console.log(sum);    // => 15

map()

將調(diào)用的數(shù)組的每個元素傳遞給指定的函數(shù),并返回一個數(shù)組,它包含該函數(shù)的返回值。例如:
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()方法返回的數(shù)組元素是調(diào)用的數(shù)組的一個子元素。傳遞的函數(shù)是用來邏輯判定的:該函數(shù)返回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()方法是數(shù)組的邏輯判定:它們對數(shù)組元素應(yīng)用指定的函數(shù)進(jìn)行判定,返回true或false。

every()針對數(shù)組中的所有元素調(diào)用判定函數(shù)都返回true,它才返回true。

somt()數(shù)組中只殺有一個元素調(diào)用函數(shù)判定返回true,它就返回true。

注意:一旦every()和some()確認(rèn)該返回什么值它們就會停止遍歷數(shù)組元素。

reduce()和reduceRight()

reduce()和reduceRight()方法使用指定的函數(shù)將數(shù)組元素進(jìn)行組合,生成單個值。
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;
});
// 求最大值 => 5
reduceRight()工作原理和reduce()一樣,不同的是它按照數(shù)組索引從高到低處理數(shù)組。

indexOf()和lastIndexOf()

搜索整個數(shù)組紅具有給定值的元素,返回找的第一份元素的索引或者如果沒有找到就返回-1。indexOf()從頭至尾搜索,lastIndexOf()則反向搜索。例如:
var a = [0, 1, 2, 1, 0];
a.indexOf(1);         // => 1
a.lastIndexOf(1);     // => 3
a.indexOf(3);         // => -1      

七 數(shù)組類型

使用Array.isArray()函數(shù)來判斷是否為數(shù)組。

    Array.isArray([]);            // => true
    Array.isArray({});            // => false

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/79619.html

相關(guān)文章

  • 如何刪除 JavaScript 數(shù)組中的虛值

    摘要:知道如果我們將輸入數(shù)組中的每個值都轉(zhuǎn)換為布爾值,就可以刪除所有值為的元素,這就滿足了此挑戰(zhàn)的要求。 翻譯:瘋狂的技術(shù)宅https://medium.freecodecamp.o... 本文首發(fā)微信公眾號:前端先鋒歡迎關(guān)注,每天都給你推送新鮮的前端技術(shù)文章 引用自 MDN: falsy(虛值)是在 Boolean 上下文中已認(rèn)定可轉(zhuǎn)換為‘假‘的值.JavaScript 在需要用到布...

    _Zhao 評論0 收藏0
  • JavaScript中的面向?qū)ο螅╫bject-oriented)編程

    摘要:對象在中,除了數(shù)字字符串布爾值這幾個簡單類型外,其他的都是對象。那么在函數(shù)對象中,這兩個屬性的有什么區(qū)別呢表示該函數(shù)對象的原型表示使用來執(zhí)行該函數(shù)時這種函數(shù)一般成為構(gòu)造函數(shù),后面會講解,新創(chuàng)建的對象的原型。這時的函數(shù)通常稱為構(gòu)造函數(shù)。。 本文原發(fā)于我的個人博客,經(jīng)多次修改后發(fā)到sf上。本文仍在不斷修改中,最新版請訪問個人博客。 最近工作一直在用nodejs做開發(fā),有了nodejs,...

    JerryZou 評論0 收藏0
  • JavaScript專題系列文章

    摘要:專題系列共計篇,主要研究日常開發(fā)中一些功能點的實現(xiàn),比如防抖節(jié)流去重類型判斷拷貝最值扁平柯里遞歸亂序排序等,特點是研究專題之函數(shù)組合專題系列第十六篇,講解函數(shù)組合,并且使用柯里化和函數(shù)組合實現(xiàn)模式需求我們需要寫一個函數(shù),輸入,返回。 JavaScript 專題之從零實現(xiàn) jQuery 的 extend JavaScritp 專題系列第七篇,講解如何從零實現(xiàn)一個 jQuery 的 ext...

    Maxiye 評論0 收藏0
  • JavaScript數(shù)組

    摘要:數(shù)組的特別之處在于,當(dāng)使用小于的非負(fù)整數(shù)作為屬性名時數(shù)組會自動維護(hù)其屬性值。返回的數(shù)組包含第一個參數(shù)指定的位置和所有到但不含第二個參數(shù)指定的位置之間的所有數(shù)組元素。數(shù)組中只需有一項滿足給定條件則返回。 概念 JavaScript數(shù)組是JavaScript對象的特殊形式。數(shù)組索引實際上和碰巧是整數(shù)的屬性名差不多,使用方括號訪問數(shù)組元素就像用方括號訪問對象的屬性一樣。JavaScript將...

    coolpail 評論0 收藏0
  • JavaScript中的數(shù)組

    摘要:數(shù)組數(shù)組概述數(shù)組是什么數(shù)組是值的有序集合數(shù)組中的每一個值叫做一個元素而每個元素在數(shù)組中都有一個唯一的位置這個位置用數(shù)字表示叫做索引數(shù)組用字符串表示叫做關(guān)聯(lián)數(shù)組數(shù)組是無類型的數(shù)組的元素可以是任何類型例如字符串?dāng)?shù)字值布爾值等而且每個數(shù)組中的不同 數(shù)組 數(shù)組概述 數(shù)組是什么 數(shù)組是值的有序集合 數(shù)組中的每一個值叫做一個元素 而每個元素在數(shù)組中都有一個唯一的位置這個位置用數(shù)字表示 叫做索引數(shù)組...

    Genng 評論0 收藏0
  • JavaScript數(shù)組

    摘要:與稀疏數(shù)組對立的為密集數(shù)組,密集數(shù)組的索引會被持續(xù)的創(chuàng)建,并且其元素的數(shù)量等于其長度。創(chuàng)建一個長度為的數(shù)組,并初始化了個元素使用構(gòu)造函數(shù)創(chuàng)建數(shù)組對象的時候,關(guān)鍵字是可以省略的。另外使用和刪除元素是影響數(shù)組的長度的。 說明:本文只總結(jié)了JavaScript數(shù)組在web端的行為,不包括NodeJs端的行為。本文不涉及類型化數(shù)組(TypedArray)的討論、總結(jié)。 一、什么是數(shù)組 數(shù)組的定...

    HtmlCssJs 評論0 收藏0

發(fā)表評論

0條評論

xinhaip

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<