数组是值的有序集合 数组中的每个值叫作一个元素 而每一个元素在数组中都有一个惟一的位置
这个位置用数字表示 叫作索引数组; 用字符串表示 叫作关联数组
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开始的web
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<arr.length; i++) { // 比较当前值是否等于 undefined if (arr[i] !== undefined) { newArr.push(arr[i]); } } console.log(newArr);
// 定义数组的默认为索引数组 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);
不只能够从数组中读取指定的元素 还能够根据需求修改数组中指定的元素值spa
// 索引数组 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关键字code
// 索引数组 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; i<arr.length; i++) { console.log(arr[i]); }
在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<arr.length; i++) { console.log(arr[i]); }
数组是能够嵌套的 代表一个数组能够做为一个元素被包含在另外一个素组里面
利用JavaScript这个特色 建立二维数组 即数组的数组ip
定义一个规整的二维数组:
所谓规整的二维数组 就是指做为外层数组的元素的内部数据中元素的个数是一致的
定义一个不规整的二维数组:
所谓不规整的二维数组 就是指做为外层数组的元素的内部数据中元素的个数是不一致的
操做二维数组中的具体元素:
读取二维数组中真正的元素内容 须要连续两个索引值才能实现 第一个索引值表示外层数组的 第二个索引值表示内部数组的
遍历二维数组须要使用嵌套结构的循环语句才能实现 外部循环语句是遍历外层数组的 内部循环语句是遍历内部数组的
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<arr.length; i++) { console.log(arr[i]); for (var j=0; j<arr[i].length; j++) { console.log(arr[i][j]); } }
var num = 9;/* 一行打印星号的数量 */ var star = '';/* 一行要打印的星号 */ for (var i=0; i<num; i++) { star += '*'; } var stars = star; // for语句 - 打印矩形效果 for (var i=0; i<10; i++) { console.log(stars); }