资讯专栏INFORMATION COLUMN

数组初步了解

沈俭 / 3365人阅读

摘要:数组数组是值的有序合集。这个位置用数字表示,叫做索引数组如果用字符串表示,那么按这个数组叫做关联数组。。

数组

数组是值的有序合集。数组中的每一个值叫做一个元素,而每一个元素在数组中都有一个唯一的位置。这个位置用数字表示,叫做索引数组;如果用字符串表示,那么按这个数组叫做关联数组。。JavaScript数组是无类型的;数组的元素可以是任何类型,例如字符串,数字值,布尔值等,而且每一个数组中的不同元素也可以是不同JavaScript数组时动态的;根据需要,可以动态的向数组插入新的元素,或者从数组中删除指定的元素。

一维数组

定义数组;

/*
    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

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

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
二维数组
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           
               
                                           
                       
                 

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/96785.html

相关文章

  • Vue初步了解组件——父子组件

    摘要:父组件的数据需要通过才能下发到子组件中。这是为了防止子组件无意间修改了父组件的状态,来避免应用的数据流变得难以理解。另外,每次父组件更新时,子组件的所有都会更新为最新值。 组件 什么是组件? 组件 (Component) 是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可重用的代码。在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功能。在有些情况...

    Bowman_han 评论0 收藏0
  • 初步了解Promise

    摘要:定义或的别名,用于指定发生错误时的回调函数。无法取消,一旦新建立即执行若不设置回调函数,则内部抛出的异常反应不到外部状态无法得知进展。 问题来了 Promise 有几种状态?Promise 有什么优缺点?Promise构造函数是同步还是异步执行,then呢?Promise和setTimeout的区别?如何实现 Promise.all?如何实现 Promise.finally? Prom...

    timger 评论0 收藏0
  • jQuery(一)-- 初步了解

    摘要:一初步了解介绍由创建于年一月的开源项目,凭借着跨平台的兼容性,简洁的语法,极大的简化了人员遍历文档,操作,处理事件,执行动画,和开发的操作。只建立一个名为的对象。对发生在同一个对象上的一组动作,可以直接连写无需重复获取对象。 jQuery(一)-- 初步了解 jQuery介绍 由John Resig创建于2006年一月的开源项目,jQuery凭借着跨平台的兼容性,简洁的语法,极大的简...

    quietin 评论0 收藏0
  • 初步学习 jQuery 核心 API

    摘要:进一步了解类数组对象可以看这篇文章对象的构建和分离构造器然后我们回来看看,让我们悲伤的代码。。。然后又通过下面的语句,将两个独立的构造器关联起来了。 背景 不造轮子的程序员不是好程序员,所以我们今天尝试造一下轮子。今天的主角是 jQuery ,虽然现在市面上已被 React,Angular,Vue 等挤的容不下它的位置,但是它的简单 API 设计依然优秀,值得学习和体会。 任务 今天造...

    张巨伟 评论0 收藏0
  • webpack 项目构建:(二)ES6 编译环境搭建

    摘要:本质就是一个编译器,通过将源代码解析成抽象语法树将源代码的结果一系列转换生成目标代码的将目标代码的转换成代码。项目构建三开发环境本地服务器搭建源码下载地址参考资料入门阮一峰中文文档中文网 注:以下教程均在 windows 环境实现,使用其他操作系统的同学实践过程可能会有些出入。   在上一章 webpack 项目构建:(一)基本架构搭建 我们搭建了一个最基本的 webpack 项目,现...

    marser 评论0 收藏0

发表评论

0条评论

沈俭

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<