JS中特殊的对象-数组

前言

之前学习的数据类型,只能存储一个值(比如:Number/String)。我想在一个变量中存储多个值,应该如何存储?

所谓数组,就是将多个元素(通常是同一类型)按一定顺序排列放到一个集合中,那么这个集合我们就称之为数组。

1.1 数组的创建

// 字面量方式创建数组
var arr1 = []; //空数组

// 创建一个包含3个数值的数组,多个数组项以逗号隔开
var arr2 = [1, 3, 4]; 

// 创建一个包含2个字符串的数组
var arr3 = ['a', 'c']; 
console.log(arr1);
console.log(arr2);

// 构造函数方式创建数组
var a1 = new Array(); //空数组
var a2 = new Array('1',2,'h'); //包含三个元素的数组
console.log(a1);
console.log(a2);

// 可以通过数组的length属性获取数组的长度
console.log(arr3.length);
// 可以设置length属性改变数组中元素的个数
arr3.length = 0;

console.log(arr3[0]);//undefined

思考:二维数组什么样?

特别注意:JS中不像PHP,没有关联数组.

1.2 获取数组元素

// 格式:数组名[下标]	下标又称索引
// 下标从0开始
// 功能:获取数组对应下标的那个值,如果下标不存在,则返回undefined。
var arr = ['red',, 'green', 'blue'];
arr[0];	// red
arr[2]; // blue
arr[3]; // 这个数组的最大下标为2,因此返回undefined

1.3 遍历数组

遍历:遍及所有,对数组的每一个元素都访问一次就叫遍历。

for循环数组遍历的基本语法:

for(var i = 0; i < arr.length; i++) {
	// 数组遍历的固定结构
}

for循环示例:

var arr1 = [1, 3, 4]; 

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

whil循环示例:

var arr1 = [1, 3, 4]; 

var i = 0;
while(i<arr1.length){
    console.log(arr1[i]);
    i++;
}

1.4 为数组添加元素

// 格式:数组名[下标/索引] = 值;
// 如果下标有对应的值,会把原来的值覆盖,如果下标不存在,会给数组新增一个元素。
var arr = ["red", "green", "blue"];
// 把red替换成了yellow
arr[0] = "yellow";
// 给数组新增加了一个pink的值
arr[3] = "pink";

1.5 数组操作案例

案例1:求数组中的所有数的和

//求和
var arr = [10, 20, 30, 40, 50];
//定义变量存储和
var sum = 0;
for (var i = 0; i < arr.length; i++) {
    sum += arr[i];
}
console.log("和为:" + sum);

案例2:获取数组中的最大值

//最大值
var arr = [10, 20, 30, 40, 50, 60];

//假设这个变量中的值是最大的
var maxNum = arr[0];
//遍历数组
for (var i = 0; i < arr.length; i++) {
    //判断
    if (maxNum < arr[i]) {
        maxNum = arr[i];
    }
}
console.log("最大值是:" + maxNum);

案例3: 遍历出数组中所有的偶数

// 遍历出数组中所有的偶数
var arr = [1,2,3,4,5,6,7];
for(var i=0;i<arr.length;i++){
    //判断
    if(arr[i]%2==0){
        console.log(arr[i]);
    }
}

案例4:将数组转为字符串并以 | 分割

//把数组中的每个名字后面拼接一个|然后以字符串的方式输出
var names = ["卡卡西", "佐助", "凤姐", "鸣人", "黑山老妖"];
var str = "";//空的字符串,用来存储最后的拼接的结果的字符串
//不停的遍历数组的数据,并且拼接字符串
for (var i = 0; i < names.length - 1; i++) {
    str += names[i] + "|";//拼接字符串的方式
}
str += names[names.length - 1];
console.log(str);

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ATYUN订阅号

善用5个优雅的 Python NumPy 函数

在机器学习和数据科学项目的日常数据处理中,我们会遇到一些特殊的情况,这些情况需要样板代码来解决。在此期间,根据大家的需要和使用情况,其中一些转换为核心语言或包本...

7730
来自专栏D·技术专栏

Spring常见问题

注:本文只是提供学习,对于知识的一个查漏补缺和解答。不要“知其然而不知其所以然”。融会贯通学会如何使用,而不是纸上谈兵。

5130
来自专栏ATYUN订阅号

AI和机器学习的多领域前景

“机器学习正在材料研究的所有领域产生影响。”麻省理工材料研究实验室主任Carl V. Thompson说。

10640
来自专栏分布式系统进阶

The Linux Scheduler: a Decade of Wasted Cores 译文 二

决定一次负载均衡是否要发生有很多的规则,因此也就很难推断如果有工作可作时一个空闲核能够维持空闲多久,也很难推断在系统中有空闲核时,任务变为可运行状态前还要在运行...

7520
来自专栏ATYUN订阅号

用Streamlit构建机器学习应用

Streamlit是一个开放源码的Python库,它可以轻松地为机器学习建模漂亮的应用程序。你可以很容易地通过pip在你的终端上安装它,然后开始用Python编...

9330
来自专栏Bingo的深度学习杂货店

二分查找及其变形与Python的bisect模块的关系

1、binsearch(nums, target):标准的二分查找,找不到返回-1; 2、lowerbound(nums, target):查找第一个>=ta...

8740
来自专栏贾志刚-OpenCV学堂

一键抠出细密发丝,这是Adobe最新的AI抠图算法,即将上线Photoshop 2020

这就是Adobe为Photoshop 2020准备的最新功能:用机器学习算法,快速捕捉对象。

14030
来自专栏ATYUN订阅号

AI哥白尼诞生!不仅发现日心说,还有望解决量子力学矛盾

太阳是太阳系的中心,这是天文学家历经了几个世纪才弄清楚的事情。但是现在,自学物理学原理的神经网络已经能够根据太阳和火星的运动以及它们在地球出现时的位置得出同样的...

8620
来自专栏跳跳爸的Abc

Es因scroll查询引起的gc问题

某日下午正开心的逛着超市,突然收到线上es机器的fgc电话告警,随之而来的是一波es reject execution,该es机器所处集群出现流量抖动。

10230
来自专栏sktj

python re

转载:https://www.runoob.com/python/python-reg-expressions.html

9120

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励