摘要:数组数组概述数组是什么数组是值的有序集合数组中的每一个值叫做一个元素而每个元素在数组中都有一个唯一的位置这个位置用数字表示叫做索引数组用字符串表示叫做关联数组数组是无类型的数组的元素可以是任何类型例如字符串数字值布尔值等而且每个数组中的不同
数组 数组概述
数组是什么
数组是值的有序集合 数组中的每一个值叫做一个元素 而每个元素在数组中都有一个唯一的位置
这个位置用数字表示 叫做索引数组; 用字符串表示 叫做关联数组
JavaScript数组是无类型的 数组的元素可以是任何类型 例如字符串 数字值 布尔值等 而且每个数组中的不同元素可能是不同类型
JavaScript数组是动态的 根据需要 可以动态地向数组插入新的元素 或者从数组中删除指定的元素
定义数组
数组最大的作用就是用于储存多个值
定义数组分为三种形式:
1.使用数组字面量方式
2.使用数组函数方式
3.使用构造函数方式
/* 1.字面量/直接量方式定义 var 数组名称 = [元素一,元素二,...] */ var arr1 = [];//定义一个数组 var arr2 = [100,"卧龙前端",true,undefined]; var arr6 = [10]; console.log(arr6); /* 2.函数构造方式 var 数组名称 = new Array(元素一,元素二,...) var 数组名称 = new Array(length) * length - number类型 表示数组的长度(存在元素的个数) */ var arr3 = new Array();//定义一个空数组 var arr4 = new Array(100,"卧龙前端",true,undefined); console.log(arr4); var arr5 = new Array(10); console.log(arr5); /* 3.函数方式定义 var 数组名称 = Array(元素一,元素二,...) var 数组名称 = Array(length) * lenght - number类型 表示数组的长度(存在元素的个数) */ var arr7 = Array();// 定义一个空数组 var arr8 = Array(100, "卧龙前端", true, undefined); var arr9 = Array(10); console.log(arr9);
索引数组
索引数组 - 表示数组中元素的位置使用数字值来表示
1.数字值表示元素的位置 - 角标或下标
2.数组的长度与元素的个数是一致的
3.索引数组的下标是从0开始的
var arr = [];//定义同一个空数组 arr[0] = "庄周梦蝶"; arr[1] = true; console.log(arr,length);
关联数组
关联数组 - 就是存储元素的位置使用字符串来表示 一般称之为名称(name或key)
注意:关联数组的数组长度与元素的个数不一致
原因:JaveScript的官方不支持关联数组的
关联数组的名称(name或key)是字符串 必须使用单引号或双引号将其包裹
var arr = [];//定义一个空数组 arr["name"] = "吕树"; arr["age"] = 18 arr["jib"] = "大魔王"; //输出的结果[name:"吕树",age: 18, job:"大魔王"] console.log(arr.length);
稀疏数组
稀疏数组是包含0开始的不连续索引的数组
稀疏数组 - 数组的长度与元素的个数不一致的
var arr = []; arr[0] = "吕树"; arr[3] = 18; arr[5] = "大魔王"; console.log(arr.length); /* 得到undefined值的几种方式: 1.定义变量 但未初始化值 2.定义变量 并初始化值为 undefined 3.访问数组中未定义的位置的元素值(默认为undefined) */ // 将稀疏数组进行处理,得到正常的索引数组 var newArr = []; for (var i=0; i访问数组的元素
// 定义数组的默认为索引数组 var arr = ["前端开发",100,null]; // 调用数组名称时,得到只是存储所有元素数据的集合 console.log(arr); // 访问索引数组中的元素 - 数组名称[索引值] console.log(arr[0]); // 如果访问了数组中未定义的位置的元素时 - 语法不抱错,结果为 undefined console.log(arr[5]); // 索引数组中索引值最大为 arr.length - 1 // JavaScript中的关联数组定义与访问都是没有问题的 var arr1 = []; arr1["name"] = "吕树"; arr1["age"] = 18; arr1["job"] = "大魔王"; console.log(arr1["name"]);数组的复制
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);数组元素的修改
不仅可以从数组中读取指定的元素 还可以根据需求修改数组中指定的元素值
// 索引数组 var arr1 = []; arr1[0] = "web前端"; arr1[1] = true; // 关联数组 var arr2 = []; arr2["name"] = "吕树"; arr2["age"] = 18; arr2["job"] = "大魔王"; // 通过数组的索引值找到对应元素的位置,再通过重新赋值的操作进行修改 arr1[0] = 100; console.log(arr1); arr2["name"] = "吕小鱼"; console.log(arr2); // 如果索引值是新的,就是新增数组的元素操作 arr1[4] = "web前端"; console.log数组元素的删除
不仅可以根据需求修改数组中指定的元素值 也可以删除数组中指定的元素值
数组删除指定元素值使用delete关键字// 索引数组 var arr1 = []; arr1[0] = "web前端"; arr1[1] = true; // 关联数组 var arr2 = []; arr2["name"] = "吕树"; arr2["age"] = 18; arr2["job"] = "大魔王"; /* 使用 delete 运算符进行删除数组的元素 * 注意 - 只是删除元素的数据内容 而对应的位置被保留 - 稀疏数组 */ delete arr1[0]; console.log(arr1);循环遍历数组
遍历数组通俗点就是说把数组中的每个数都读一遍(部分有if条件+break的则可能不会完全遍历)可以对于数组中的每个数进行处理 亦或者是找到数组中那个自己需要的数
循环遍历数组有三种语句: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语句 同样可用于遍历数组
for...in语句还可以用于遍历稀疏数组 循环的每次将一个有效元素返回
for语句: 循环的开始和结束 都是由程序员决定的
for..in语句: 循环只能从开始到结束var arr = ["前端课程", 100, true, undefined]; /* for (var 变量 in 数组) { 语句块 } * 变量 - 得到的是数组的索引值 */ for (var i in arr) { console.log(arr[i]); } for (var i=0; i二维数组 二维数组是什么
数组是可以嵌套的 表明一个数组可以作为一个元素被包含在另一个素组里面
利用JavaScript这个特点 创建二维数组 即数组的数组定义二维数组
定义一个规整的二维数组:
所谓规整的二维数组 就是指作为外层数组的元素的内部数据中元素的个数是一致的
定义一个不规整的二维数组:
所谓不规整的二维数组 就是指作为外层数组的元素的内部数据中元素的个数是不一致的使用二维数组
操作二维数组中的具体元素:
读取二维数组中真正的元素内容 需要连续两个索引值才能实现 第一个索引值表示外层数组的 第二个索引值表示内部数组的遍历二维数组
遍历二维数组需要使用嵌套结构的循环语句才能实现 外部循环语句是遍历外层数组的 内部循环语句是遍历内部数组的
二维数组
var arr = [];// 定义一个空数组 arr[0] = [100,200,300]; arr[1] = [400,500,600]; arr[2] = [700,800,900]; //console.log(arr); // 访问二维数组中的元素 var result = arr[0]; // 循环遍历二维数组 for (var i=0; i打印形状
var num = 9;/* 一行打印星号的数量 */ var star = "";/* 一行要打印的星号 */ for (var i=0; i
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/96782.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)的讨论、总结。 一、什么是数组 数组的定...
阅读 2647·2021-11-24 09:39
阅读 1648·2021-11-24 09:38
阅读 629·2021-11-22 14:44
阅读 1887·2021-11-18 10:02
阅读 2572·2021-11-18 10:02
阅读 1158·2021-10-14 09:43
阅读 4243·2021-09-29 09:35
阅读 523·2021-07-30 15:30