JavaScript中的数组

数组

数组概述

  • 数组是什么

数组是值的有序鸠合 数组中的每一个值叫做一个元素 而每一个元素在数组中都有一个唯一的位置
这个位置用数字示意 叫做索引数组; 用字符串示意 叫做关联数组
JavaScript数组是无范例的 数组的元素可所以任何范例 比方字符串 数字值 布尔值等 而且每一个数组中的差别元素多是差别范例
JavaScript数组是动态的 依据须要 能够动态地向数组插进去新的元素 或许从数组中删除指定的元素

一维数组

  • 定义数组

数组最大的作用就是用于贮存多个值
定义数组分为三种情势:
1.运用数组字面量体式格局
2.运用数组函数体式格局
3.运用组织函数体式格局
《JavaScript中的数组》

/*
    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<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']);
  • 数组的复制

《JavaScript中的数组》

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; i<arr.length; i++) {
    console.log(arr[i]);
}
  • for…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<arr.length; i++) {
    console.log(arr[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<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);
}
    原文作者:栖梧
    原文地址: https://segmentfault.com/a/1190000015952412
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞