【JavaScript】核心语法之数组

JS(JavaScript)

数组;

一.数组是什么;

是值得有序集合,每个元素都在数组里有唯一的位置,用数字表示,叫做索引数据;用字符串表示,叫关联数组。
数组无类型;数组元素可以是类型,字符串,数字值,布尔值等
数组动态的;向插入新元素,从数组中删除指定元素

二.一维数组;

1.定义数组;

  • 字面量/直接量方式定义
    var 数组名称 = [元素一, 元素二, ...]
  • 构造函数方式
    var 数组名称 = new Array(元素一, 元素二, ...)
    var 数组名称 = new Array(length)

    • length - number类型,表示数组的长度(存在元素的个数)
  • 函数方式定义
    var 数组名称 = Array(元素一, 元素二, ...)
    var 数组名称 = Array(length)

    • length - number类型,表示数组的长度(存在元素的个数)

    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)
      * length - number类型,表示数组的长度(存在元素的个数)
var arr7 = Array();// 定义一个空数组
var arr8 = Array(100, '爱新觉罗', true, undefined);
var arr9 = Array(10);
console.log(arr9);

2.索引数组;

就是存储元素的位置并以数字值来表示,数字值从0开始,一般称为索引值
/*

索引数组 - 表示数组中元素的位置使用数字值来表示的
* 数字值表示元素的位置 -> 角标或下标
* 数组的长度与元素的个数是一致的

*/
var arr = [];// 定义一个空数组
arr[0] = '爱新觉罗';
arr[1] = true;

console.log(arr.length);

 3.关联数组;

存储元素的位置使用字符串来表示

/*

关联数组 - 表示数组中元素的位置使用字符串来表示的
* 注意:关联数组的数组长度与元素的个数不一致
* 原因:JavaScript的官方不支持关联数组的

*/
var arr = [];// 定义一个空数组
arr['name'] = '张无忌';
arr['age'] = 19;
arr['job'] = '教主';
// 输出的结果:[ name: '张无忌', age: 19, job: '教主' ]
console.log(arr.length);

 4.稀疏数组;

包含0开始的不连续索引的数组

var arr = [];
arr2[0] = '犬夜叉';
arr2[3] = 16;
arr2[5] = '半妖';
/*索引数组的位置允许不连续;没有定义元素的位置默认为空(undefined)

* 稀疏数组;数组的长度与元素的个数不一致的*/

console.log(arr.length);
var newArr = [];
for (var i=0; i<arr.length; i++) {

// 比较当前值是否等于 undefined
if (arr[i] !== undefined) {
    newArr.push(arr[i]);
}

}
console.log(newArr);



 5.数组的长度;

以length属性,用来表示指定数组的长度和个数
 6.数组元素的读取;

用于存储和读取数据信息

var arr = ['爱新觉罗',100,null];
console.log(arr);
//调用数组名称,得到只是存储所有元素数值的集合
console.log(arr[0]);
//访问索引数组中的元素;数组名称[索引值]
console.log(arr[5]);
//如果访问了数组中未定义位置的冤死时;语法不报错,结果是 undefined
//索引数组中索引值最大为 arr.length;1

//JS(JavaScript)中关联数组定义,访问都没有问题
var arr1 = [];
arr1['name'] = '犬夜叉';
arr1['age'] = 16;
arr1['job'] = '半妖';
console.log(arr1['name']);


 7.数组元素的修改;

可读取指定元素,并进行修改数组中指定元素值

var arr1 = [];
arr1[0] = '爱新觉罗';
arr1[1] = true;

var arr2 = [];
arr2['name'] = '犬夜叉';
arr2['age'] = 16;
arr2['job'] = '半妖';
arr1[0] = 100;
console.log(arr1);

arr2['name'] = '杀生丸';
console.log(arr2);
//通过数字索引值到对应元素的位置,再通过重新赋值操作进行修改
arr1[4] = '爱新觉罗';
console.log(arr1);
//如果索引值是新的,就是新增数组的元素操作


 8.数组元素的删除;

使用delete关键字竞秀删除数组中指定的元素值

var arr1 = [];
arr1[0] = '爱新觉罗';
arr2[1] = true;

var arr2 = [];
arr2['name'] = '犬夜叉';
arr2['age'] = 16;
arr2['job'] = '半妖';

delete arr1[0];
console.log(arr1);
/*使用delete运算符进行删除数组元素

  • 只是删除元素数据内容,而对应位置被保留;稀疏数组
    */

 9.遍历数组元素;

通常使用循环语句获取数组的数据

var arr = ['爱新觉罗',100,true,undefined];
/*var i = 0;
while (i < arr.length){

  console.log(arr[i]);

  i++;

}
//while语句
var i = 0;
do {

console.log(arr[i]);

i++;

} while (i < arr.length);
//do...while语句*/
for (var i=0; i<arr.length; i++) {

console.log(arr[i]);

}
//for语句

10.for...in语句

可以用来遍历稀疏数组,循环每次一有效元素返回,不存在索引不会遍历到

// 关联数组的length属性为 0
var arr1 = [];
arr1['name'] = '犬夜叉';
arr1['age'] = 16;
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] = 16;
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]);
}

三.二维数组;

1.二维数组是什么;


可以嵌套,表示在一个数组可以以一个元素包裹在另一个数组里面
2.定义二维数组;


为规整和不规整的二维数组,是指外层数组元素内部数据元素的个数是一致还有不一样的
3.使用二维数组;


获取二维数组,中元素内容,使用练习需要连续2个索引值一个表示外层索引值一个内部索引值

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]);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值