摘要:數(shù)組數(shù)組概述數(shù)組是什么數(shù)組是值的有序集合數(shù)組中的每一個(gè)值叫做一個(gè)元素而每個(gè)元素在數(shù)組中都有一個(gè)唯一的位置這個(gè)位置用數(shù)字表示叫做索引數(shù)組用字符串表示叫做關(guān)聯(lián)數(shù)組數(shù)組是無類型的數(shù)組的元素可以是任何類型例如字符串?dāng)?shù)字值布爾值等而且每個(gè)數(shù)組中的不同
數(shù)組 數(shù)組概述
數(shù)組是什么
數(shù)組是值的有序集合 數(shù)組中的每一個(gè)值叫做一個(gè)元素 而每個(gè)元素在數(shù)組中都有一個(gè)唯一的位置
這個(gè)位置用數(shù)字表示 叫做索引數(shù)組; 用字符串表示 叫做關(guān)聯(lián)數(shù)組
JavaScript數(shù)組是無類型的 數(shù)組的元素可以是任何類型 例如字符串 數(shù)字值 布爾值等 而且每個(gè)數(shù)組中的不同元素可能是不同類型
JavaScript數(shù)組是動(dòng)態(tài)的 根據(jù)需要 可以動(dòng)態(tài)地向數(shù)組插入新的元素 或者從數(shù)組中刪除指定的元素
定義數(shù)組
數(shù)組最大的作用就是用于儲存多個(gè)值
定義數(shù)組分為三種形式:
1.使用數(shù)組字面量方式
2.使用數(shù)組函數(shù)方式
3.使用構(gòu)造函數(shù)方式
/* 1.字面量/直接量方式定義 var 數(shù)組名稱 = [元素一,元素二,...] */ var arr1 = [];//定義一個(gè)數(shù)組 var arr2 = [100,"臥龍前端",true,undefined]; var arr6 = [10]; console.log(arr6); /* 2.函數(shù)構(gòu)造方式 var 數(shù)組名稱 = new Array(元素一,元素二,...) var 數(shù)組名稱 = new Array(length) * length - number類型 表示數(shù)組的長度(存在元素的個(gè)數(shù)) */ var arr3 = new Array();//定義一個(gè)空數(shù)組 var arr4 = new Array(100,"臥龍前端",true,undefined); console.log(arr4); var arr5 = new Array(10); console.log(arr5); /* 3.函數(shù)方式定義 var 數(shù)組名稱 = Array(元素一,元素二,...) var 數(shù)組名稱 = Array(length) * lenght - number類型 表示數(shù)組的長度(存在元素的個(gè)數(shù)) */ var arr7 = Array();// 定義一個(gè)空數(shù)組 var arr8 = Array(100, "臥龍前端", true, undefined); var arr9 = Array(10); console.log(arr9);
索引數(shù)組
索引數(shù)組 - 表示數(shù)組中元素的位置使用數(shù)字值來表示
1.數(shù)字值表示元素的位置 - 角標(biāo)或下標(biāo)
2.數(shù)組的長度與元素的個(gè)數(shù)是一致的
3.索引數(shù)組的下標(biāo)是從0開始的
var arr = [];//定義同一個(gè)空數(shù)組 arr[0] = "莊周夢蝶"; arr[1] = true; console.log(arr,length);
關(guān)聯(lián)數(shù)組
關(guān)聯(lián)數(shù)組 - 就是存儲元素的位置使用字符串來表示 一般稱之為名稱(name或key)
注意:關(guān)聯(lián)數(shù)組的數(shù)組長度與元素的個(gè)數(shù)不一致
原因:JaveScript的官方不支持關(guān)聯(lián)數(shù)組的
關(guān)聯(lián)數(shù)組的名稱(name或key)是字符串 必須使用單引號或雙引號將其包裹
var arr = [];//定義一個(gè)空數(shù)組 arr["name"] = "呂樹"; arr["age"] = 18 arr["jib"] = "大魔王"; //輸出的結(jié)果[name:"呂樹",age: 18, job:"大魔王"] console.log(arr.length);
稀疏數(shù)組
稀疏數(shù)組是包含0開始的不連續(xù)索引的數(shù)組
稀疏數(shù)組 - 數(shù)組的長度與元素的個(gè)數(shù)不一致的
var arr = []; arr[0] = "呂樹"; arr[3] = 18; arr[5] = "大魔王"; console.log(arr.length); /* 得到undefined值的幾種方式: 1.定義變量 但未初始化值 2.定義變量 并初始化值為 undefined 3.訪問數(shù)組中未定義的位置的元素值(默認(rèn)為undefined) */ // 將稀疏數(shù)組進(jìn)行處理,得到正常的索引數(shù)組 var newArr = []; for (var i=0; i訪問數(shù)組的元素
// 定義數(shù)組的默認(rèn)為索引數(shù)組 var arr = ["前端開發(fā)",100,null]; // 調(diào)用數(shù)組名稱時(shí),得到只是存儲所有元素?cái)?shù)據(jù)的集合 console.log(arr); // 訪問索引數(shù)組中的元素 - 數(shù)組名稱[索引值] console.log(arr[0]); // 如果訪問了數(shù)組中未定義的位置的元素時(shí) - 語法不抱錯(cuò),結(jié)果為 undefined console.log(arr[5]); // 索引數(shù)組中索引值最大為 arr.length - 1 // JavaScript中的關(guān)聯(lián)數(shù)組定義與訪問都是沒有問題的 var arr1 = []; arr1["name"] = "呂樹"; arr1["age"] = 18; arr1["job"] = "大魔王"; console.log(arr1["name"]);數(shù)組的復(fù)制
var arr = ["蝶夢莊周", true]; var result = arr; console.log(arr); console.log(result); arr = [100]; console.log(arr); console.log(result); arr[0] = 100; console.log(arr); console.log(result);數(shù)組元素的修改
不僅可以從數(shù)組中讀取指定的元素 還可以根據(jù)需求修改數(shù)組中指定的元素值
// 索引數(shù)組 var arr1 = []; arr1[0] = "web前端"; arr1[1] = true; // 關(guān)聯(lián)數(shù)組 var arr2 = []; arr2["name"] = "呂樹"; arr2["age"] = 18; arr2["job"] = "大魔王"; // 通過數(shù)組的索引值找到對應(yīng)元素的位置,再通過重新賦值的操作進(jìn)行修改 arr1[0] = 100; console.log(arr1); arr2["name"] = "呂小魚"; console.log(arr2); // 如果索引值是新的,就是新增數(shù)組的元素操作 arr1[4] = "web前端"; console.log數(shù)組元素的刪除
不僅可以根據(jù)需求修改數(shù)組中指定的元素值 也可以刪除數(shù)組中指定的元素值
數(shù)組刪除指定元素值使用delete關(guān)鍵字// 索引數(shù)組 var arr1 = []; arr1[0] = "web前端"; arr1[1] = true; // 關(guān)聯(lián)數(shù)組 var arr2 = []; arr2["name"] = "呂樹"; arr2["age"] = 18; arr2["job"] = "大魔王"; /* 使用 delete 運(yùn)算符進(jìn)行刪除數(shù)組的元素 * 注意 - 只是刪除元素的數(shù)據(jù)內(nèi)容 而對應(yīng)的位置被保留 - 稀疏數(shù)組 */ delete arr1[0]; console.log(arr1);循環(huán)遍歷數(shù)組
遍歷數(shù)組通俗點(diǎn)就是說把數(shù)組中的每個(gè)數(shù)都讀一遍(部分有if條件+break的則可能不會完全遍歷)可以對于數(shù)組中的每個(gè)數(shù)進(jìn)行處理 亦或者是找到數(shù)組中那個(gè)自己需要的數(shù)
循環(huán)遍歷數(shù)組有三種語句:var arr = ["web前端",100,true,undefined]; // while語句 var i = 0; while (i < arr.length){ console.log(arr[i]); i++; // do...while語句 var i = 0; do { console.log(arr[i]); i++; } while (i < arr.length);*/ // for語句 for (var i=0; ifor...in語句
在ECMAScript5中新增了for...in語句 同樣可用于遍歷數(shù)組
for...in語句還可以用于遍歷稀疏數(shù)組 循環(huán)的每次將一個(gè)有效元素返回
for語句: 循環(huán)的開始和結(jié)束 都是由程序員決定的
for..in語句: 循環(huán)只能從開始到結(jié)束var arr = ["前端課程", 100, true, undefined]; /* for (var 變量 in 數(shù)組) { 語句塊 } * 變量 - 得到的是數(shù)組的索引值 */ for (var i in arr) { console.log(arr[i]); } for (var i=0; i二維數(shù)組 二維數(shù)組是什么
數(shù)組是可以嵌套的 表明一個(gè)數(shù)組可以作為一個(gè)元素被包含在另一個(gè)素組里面
利用JavaScript這個(gè)特點(diǎn) 創(chuàng)建二維數(shù)組 即數(shù)組的數(shù)組定義二維數(shù)組
定義一個(gè)規(guī)整的二維數(shù)組:
所謂規(guī)整的二維數(shù)組 就是指作為外層數(shù)組的元素的內(nèi)部數(shù)據(jù)中元素的個(gè)數(shù)是一致的
定義一個(gè)不規(guī)整的二維數(shù)組:
所謂不規(guī)整的二維數(shù)組 就是指作為外層數(shù)組的元素的內(nèi)部數(shù)據(jù)中元素的個(gè)數(shù)是不一致的使用二維數(shù)組
操作二維數(shù)組中的具體元素:
讀取二維數(shù)組中真正的元素內(nèi)容 需要連續(xù)兩個(gè)索引值才能實(shí)現(xiàn) 第一個(gè)索引值表示外層數(shù)組的 第二個(gè)索引值表示內(nèi)部數(shù)組的遍歷二維數(shù)組
遍歷二維數(shù)組需要使用嵌套結(jié)構(gòu)的循環(huán)語句才能實(shí)現(xiàn) 外部循環(huán)語句是遍歷外層數(shù)組的 內(nèi)部循環(huán)語句是遍歷內(nèi)部數(shù)組的
二維數(shù)組
var arr = [];// 定義一個(gè)空數(shù)組 arr[0] = [100,200,300]; arr[1] = [400,500,600]; arr[2] = [700,800,900]; //console.log(arr); // 訪問二維數(shù)組中的元素 var result = arr[0]; // 循環(huán)遍歷二維數(shù)組 for (var i=0; i打印形狀
var num = 9;/* 一行打印星號的數(shù)量 */ var star = "";/* 一行要打印的星號 */ for (var i=0; i
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/96782.html
摘要:知道如果我們將輸入數(shù)組中的每個(gè)值都轉(zhuǎn)換為布爾值,就可以刪除所有值為的元素,這就滿足了此挑戰(zhàn)的要求。 翻譯:瘋狂的技術(shù)宅https://medium.freecodecamp.o... 本文首發(fā)微信公眾號:前端先鋒歡迎關(guān)注,每天都給你推送新鮮的前端技術(shù)文章 引用自 MDN: falsy(虛值)是在 Boolean 上下文中已認(rèn)定可轉(zhuǎn)換為‘假‘的值.JavaScript 在需要用到布...
摘要:對象在中,除了數(shù)字字符串布爾值這幾個(gè)簡單類型外,其他的都是對象。那么在函數(shù)對象中,這兩個(gè)屬性的有什么區(qū)別呢表示該函數(shù)對象的原型表示使用來執(zhí)行該函數(shù)時(shí)這種函數(shù)一般成為構(gòu)造函數(shù),后面會講解,新創(chuàng)建的對象的原型。這時(shí)的函數(shù)通常稱為構(gòu)造函數(shù)。。 本文原發(fā)于我的個(gè)人博客,經(jīng)多次修改后發(fā)到sf上。本文仍在不斷修改中,最新版請?jiān)L問個(gè)人博客。 最近工作一直在用nodejs做開發(fā),有了nodejs,...
摘要:專題系列共計(jì)篇,主要研究日常開發(fā)中一些功能點(diǎn)的實(shí)現(xiàn),比如防抖節(jié)流去重類型判斷拷貝最值扁平柯里遞歸亂序排序等,特點(diǎn)是研究專題之函數(shù)組合專題系列第十六篇,講解函數(shù)組合,并且使用柯里化和函數(shù)組合實(shí)現(xiàn)模式需求我們需要寫一個(gè)函數(shù),輸入,返回。 JavaScript 專題之從零實(shí)現(xiàn) jQuery 的 extend JavaScritp 專題系列第七篇,講解如何從零實(shí)現(xiàn)一個(gè) jQuery 的 ext...
摘要:數(shù)組的特別之處在于,當(dāng)使用小于的非負(fù)整數(shù)作為屬性名時(shí)數(shù)組會自動(dòng)維護(hù)其屬性值。返回的數(shù)組包含第一個(gè)參數(shù)指定的位置和所有到但不含第二個(gè)參數(shù)指定的位置之間的所有數(shù)組元素。數(shù)組中只需有一項(xiàng)滿足給定條件則返回。 概念 JavaScript數(shù)組是JavaScript對象的特殊形式。數(shù)組索引實(shí)際上和碰巧是整數(shù)的屬性名差不多,使用方括號訪問數(shù)組元素就像用方括號訪問對象的屬性一樣。JavaScript將...
摘要:與稀疏數(shù)組對立的為密集數(shù)組,密集數(shù)組的索引會被持續(xù)的創(chuàng)建,并且其元素的數(shù)量等于其長度。創(chuàng)建一個(gè)長度為的數(shù)組,并初始化了個(gè)元素使用構(gòu)造函數(shù)創(chuàng)建數(shù)組對象的時(shí)候,關(guān)鍵字是可以省略的。另外使用和刪除元素是影響數(shù)組的長度的。 說明:本文只總結(jié)了JavaScript數(shù)組在web端的行為,不包括NodeJs端的行為。本文不涉及類型化數(shù)組(TypedArray)的討論、總結(jié)。 一、什么是數(shù)組 數(shù)組的定...
閱讀 2662·2021-11-24 09:39
閱讀 1667·2021-11-24 09:38
閱讀 644·2021-11-22 14:44
閱讀 1901·2021-11-18 10:02
閱讀 2606·2021-11-18 10:02
閱讀 1170·2021-10-14 09:43
閱讀 4263·2021-09-29 09:35
閱讀 563·2021-07-30 15:30