数组开端相识

数组

  1. 数组是值的有序合集。数组中的每个值叫做一个元素,而每个元素在数组中都有一个唯一的位置。这个位置用数字示意,叫做索引数组;假如用字符串示意,那末按这个数组叫做关联数组。。JavaScript数组是无范例的;数组的元素可所以任何范例,比方字符串,数字值,布尔值等,而且每个数组中的差别元素也可所以差别JavaScript数组时动态的;根据需要,能够动态的向数组插进去新的元素,或许从数组中删除指定的元素。

一维数组

  1. 定义数组;
/*
    1.字面量/直接量体式格局定义
      var 数组称号 = [元素一, 元素二, ...]
  */
var arr1 = [];// 定义一个空数组{}
var arr2 = [100, '嘟嘟', true, undefined];//那末输出的数组也是【100, ‘嘟嘟’ ,true,undefind】
var arr6 = [10];//{10}

/*
    2.组织函数体式格局
      var 数组称号 = new Array(元素一, 元素二, ...)
      var 数组称号 = new Array(length)
      * length - number范例,示意数组的长度(存在元素的个数)
 */
var arr3 = new Array();// 定义一个空数组[]
var arr4 = new Array(100, '卧龙学苑', true, undefined);//[100,'卧龙学院',ture,unidentified]
console.log(arr4);//{100,‘卧龙学院’,ture,undefingd}

var arr5 = new Array(10);
console.log(arr5);

/*
    3.函数体式格局定义
      var 数组称号 = Array(元素一, 元素二, ...)
      var 数组称号 = Array(length)
      * length - number范例,示意数组的长度(存在元素的个数)
 */
var arr7 = Array();// 定义一个空数组
var arr8 = Array(100, '卧龙学苑', true, undefined);
var arr9 = Array(10);
console.log(arr9);

2.索引数组,关联数组,希罕数组

  • 索引数组
/*
    索引数组 - 示意数组中元素的位置运用数字值来示意的
    * 数字值示意元素的位置 -> 角标或下标
    * 数组的长度与元素的个数是一致的
 */
var arr = [];// 定义一个空数组
arr[0] = 'if i were a boy';//给数组增加一个元素
arr[1] = true;//给数组增加一个元素

console.log(arr.length);//输出数组元素的个数 2
  • 关联数组
/*
    关联数组 - 示意数组中元素的位置运用字符串来示意的
    * 注重:关联数组的数组长度与元素的个数不一致
    * 缘由:JavaScript的官方不支持关联数组的
 */
var arr = [];// 定义一个空数组
arr['姓名'] = '阿凡达';
arr['岁数'] = '255';
arr['奇迹'] = '胜利';
console.log(arr);
// 输出的效果:[ '姓名': '阿凡达', '岁数': '255', '奇迹': '胜利' ]
console.log(arr.length);//0
  • 稀缺数组
/*
    索引数组的位置许可不一连的 - 没有定义元素的位置默以为空(undefined)
    * 希罕数组 - 数组的长度与元素的个数不一致的
 */
var arr = [];
arr[0] = '我爱国';
arr[3] = 155;
arr[5] = '大反派';
console.log(arr)//[ '我爱国', <2 empty items>, 155, <1 empty item>, '大反派' ]
console.log(arr.length);//6

/*
    获得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);//[ '我爱国', 155, '大反派' ]

3.数组:接见,复制,修正,删除

  • 数组的接见
// 定义数组的默以为索引数组
var arr = ['卧龙学苑',100,null,1];
// 挪用数组称号时,获得只是存储一切元素数据的鸠合
console.log(arr);
// 接见索引数组中的元素 -> 数组称号[索引值]
console.log(arr[2]);
// 假如接见了数组中未定义的位置的元素时 - 语法不报错,效果为 undefined
console.log(arr[5]);
// 索引数组中索引值最大为 arr.length - 1

// JavaScript中的关联数组定义与接见都是没有问题的
var arr1 = [];
arr1['name'] = '近邻小林';
arr1['age'] = '28';
arr1['job'] = '卖大米的';

console.log(arr1['name']);
  • 数组的复制
var arr = ['花美男', true];//定义一个数组,并赋值数组。
var result = arr;//在定义一个数组并赋值

console.log(arr);//[ '花美男', true ]
console.log(result);//[ '花美男', true ]

arr = [100];
console.log(arr);//[ 100 ]

console.log(result);//[ '花美男', true ]由于result以及被赋值过所以不会被转变

arr[0] = 100;
console.log(arr);//[ 100 ]

console.log(result);//[ '花美男', true ]
  • 数组的修正
// 索引数组
var arr1 = [];
arr1[0] = '大本钟华莱士';
arr1[1] = 515;
// 关联数组
var arr2 = [];
arr2['姓名'] = '周杰伦';
arr2['职业'] = '歌手演员';
arr2['帅么'] = '还能够';
// 经由过程数组的索引值找到对应元素的位置,再经由过程从新赋值的操纵举行修正
arr1[0] = 100;
console.log(arr1);

arr2['姓名'] = '蔡依林';
console.log(arr2);
// 假如索引值是新的,就是新增数组的元素操纵
arr1[4] = '小龙';
console.log(arr1);
  • 元素的删除
// 索引数组
var arr1 = [];
arr1[0] = '小帅';
arr1[1] = true;
// 关联数组
var arr2 = [];
arr2['姓名1'] = '乔峰';
arr2['姓名2'] = '李易峰';
arr2['姓名3'] = '欧阳锋';

/*
    运用 delete 运算符举行删除数组的元素
    * 注重 - 只是删除元素的数据内容,而对应的位置被保存 -> 希罕数组
  */
delete arr1[0];
console.log(arr1);//[ <1 empty item>, true ]
delete arr2['姓名1']
console.log(arr2)//[ '姓名2': '李易峰', '姓名3': '欧阳锋' ]

4.轮回遍历数组

var arr = ['卧龙学苑', 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]);
}

5.for in 语句

var arr = ['卧龙学苑', 100, true, undefined];
/*
    for (var 变量 in 数组) {
        语句块
    }
    * 变量 - 获得的是数组的索引值
 */
for (var i in arr) {
    console.log(arr[i]);
}
/*
    * for语句
      * 轮回的最先和完毕,都是由程序员决议的
    * for..in语句
      * 轮回只能从最先到完毕
 */
for (var i=0; i<arr.length; i++) {
    console.log(arr[i]);
}

// 关联数组的length属性为 0
var arr1 = [];
arr1['name'] = '张无忌';
arr1['age'] = 19;
arr1['job'] = '教主';

/*for (var i=0; i<arr1.length; i++) {
    console.log(arr1[i]);
}*/
// for..in语句能够轮回遍历关联数组, for语句不可
for (var i in arr1) {
    console.log(arr1[i]);
}

// 希罕数组 - 数组的长度与元素的个数不一致
var arr2 = [];
arr2[0] = '张无忌';
arr2[3] = 19;
arr2[5] = '教主';

/*for (var i=0; i<arr2.length; i++) {
    console.log(arr2[i]);
}*/
// for..in语句轮回遍历希罕数组(直接获得有用元素值), for语句不可
for (var i in arr2) {
    console.log(arr2[i]);
}

二维数组

var arr = [];// 定义一个空数组
arr[0] = [100,200,300];
arr[1] = [400,500,600];
arr[2] = [700,800,900];

// console.log(arr);
// 接见二维数组中的元素
var result = arr[0];
/*console.log(result[0]);

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