十五、数组-1

#1.什么是数组

组:由多个成员构成的一个集体。

数组:数组是值的有序集合

值就是前面所讲过的这些数据(各种数据类型的都可以)

是数组中,每一个值(如100,’js’,true)都称之为一个元素。

每一个元素在数组中所处的位置,称之为索引。是数字来表示,从0开始。

数组的作用

可以存储多个数据;

便于数据的管理和操作;

#2. 创建数组

在js中,创建数组有两种方式:

ü 直接量(字面量)

ü new的方式

#直接量(字面量)

[]表示是数组,数组中的元素之间使用逗号隔开。

#new的方式

#关于new Array()的参数说明:

1)new Array();括号里面不传参,表示创建一个空数组

img

2)new Array();括号里传了一个数字参数;这个参数表示数组的长度,

3)new Array();括号里传一个非数字参数,这个参数表示数组项;

4)new Array():括号里面传多个参数时,这些参数都是数组项

img

#3. 数组的基本操作

#数组的类型:

JavaScript数组是对象的特殊形式

img

#数组的属性:length

​ **数组.length== ** ** ** 数组的长度

​ 获取数组的长度

​ img

​ 设置数组的长度

​ 

当设置长度为0时,可以清空数组

说明:

ü JavaScript数组是动态的,根据需要它们会增长或缩减

ü 数组元素的索引不一定要连续的,它们之间可以有空缺。

#数组的索引

获取数组的元素:

**语法格式:数组[下标] ** ;

**注意 ** :当获取的数组项,超出数组的下标范围内,(该位置上没有值时)返回undefined;

修改数组项

​ 语法格式:数组[下标] = 值;

增加:

#遍历数组:

#4. 数组的方法:

#4.1. 数组的添加方法:

#4.1.1.向数组的末尾添加:push;

​ 语法:arr.push(val1,val2,val3,...):

​ 功能:向数组的末尾添加一个或多个值

​ 返回值:push方法的返回值是新数组的长度;

​ 说明:这个方法会改变原数组;

#4.1.2.向数组的头部添加:unshift

​ 语法:arr.unshift(val1,val2.....)

​ 功能:向数组的头部添加一个或多个值

​ 返回值:unshift方法的返回值是新数组的长度;

​ 说明:这个方法会改变原数组;

img

#4.2. 数组的删除方法:

#4.2.1. 删除最后一项:pop

返回值:

#4.2.2. 删除数组的第一项 shift;

语法:arr.shift();

功能:删除数组的第一项:

返回值:被删除的项;

说明:原数组被改变

#小结:

\1. 创建数组的两种方式

\2. 注意new Array()的参数问题

\3. 数组的length既可以获取也可以设置

\4. 数组的添加方法有 push() =>末尾 unshift()=>头部 返回值都是数组的长度

\5. 数组的删除方法有 pop()=>删最后一个 shift()=>删第一个 返回值都是被删项

#作业:

\5. 题目:var arrs = ["a","c",6,"e",5,3,"d"];将arrs中所有的数字乘以5,返回[30,25,15]

思路:1)创建一个新数组。

2)遍历原数组的每一项,判断是否是数字;

3)如果是数字,那么当前数组项*5;

4)添加到新数组中

\6. 题目:var nums = [18,6,9,23,88,5];写一个函数,将这个数组中所有的一位数前面补0,输出一个新数组,即最后返回[18,"06","09",23,88,"05"]

思路:1)定义一个函数:并接收一个数组;

2)定义一个空数组,放最后结果;

3)遍历数组,

4)判断数组的每一项是否小于10;

5)如果小于10;前面拼接一个‘0‘;拼接后,添加到新数组中

6)否则:直接添加到新数组中

​ 7)将新数组返回

3.题目: 写一个函数bouncer(),实现将数组中的真值,添加到一个新数组中;

​ 例如:

​ bouncer([7, "ate", "", false, 9]) 应该返回 [7, "ate", 9].

​ bouncer(["a", "b", "c"])应该返回 ["a", "b", "c"].

​ bouncer([false, null, 0, NaN, undefined, ""]) 应该返回 [].

​ bouncer([1, null, NaN, 2, undefined]) 应该返回 [1, 2].

​ 思路:1)定义一个函数,接收一个数组作为参数;

​ 2)创建一个空数组 ;结果

​ 3)遍历数组,

​ 4)判断每一项是否为真值

​ 5)如果是真值,那么添加到新数组中

​ 6)返回新数组

\4. 题目:用多种方式实现删除数组的最后一项内容

​ 思路:利用数组的length属性

\5. 题目:封装一个函数,实现数组的push方法

分析:push:向指定数组的末尾添加一项或多项内容;

分析:/* 由push的功能得知:

​ 这个函数的功能是项指定数组添加一项或多项内容;

​ 因此,调用函数时,需要传入一个指定数组,传入要添加的内容;而要添加的内容个数不确定,因此形参不确定

​ 所以当实参个数不定时,想到arguments;

​ 第一个实参是指定的数组,后面的实参是要想数组添加的内容*/

思路:

1)将第一个实参赋值给变量arr(方便使用);

2)从第二个实参开始遍历;每遍历一个实参,将其赋给arr下标为arr.length的位置,实现在数组的末尾添加

​ 3)循环结束将arr返回;

js上 十五、数组-1的更多相关文章

  1. js上 十六、数组-2

    十六.数组-2 #4.3万能法:splice(): #4.3.1.删除功能 ​ 语法:arr.splice(index,num); //num表示删除的长度 ​ 功能:从下标index位置开始,删除n ...

  2. js上 十九、综合案例

    十九.综合案例 题目一: 封装一个函数equal(a1,a2),传入两个一维数组,判断两个数组是否包含相同的元素,如果相等,函数的返回值为true, 不相等,函数的返回值为false 1)例:arr1 ...

  3. js上 十四、对象

    十四.对象 #1.初识对象 什么是对象? 在js中,一切皆是对象. 对象,生活中可见和不可见的东西,在世界中,客观存在的都是一个对象. 桌子,笔记本,手机,人. 在日常生活中,我们是如何来描述这个对象 ...

  4. js上 十八、字符串

    十八.字符串 #18.1.认识字符串 #什么是字符串 字符串可以是引号中的任意文本.字符串可以由双引号(")或单引号(')表示 ,如 'hello' , "中国" #为什 ...

  5. js上 十七、数组-3

    十七.数组-3 #课堂案例 \1. 封装一个chunk(arr,size)的函数,把该数组arr按照指定的size分割成若干个数组块. 例如:chunk([1,2,3,4],2) 返回结果:[[1,2 ...

  6. js上 十二、函数初步-1

    11-1.引入(认识函数) ​ 引入: 说起函数,其实我们并不陌生,在初中数学中我们就接触过函数:例如我们所学的 y = 2X+1 ; 这是一个二元一次方程,也是我们数字中的函数: ​ 当我们每次输入 ...

  7. js上 十、循环语句-1:

    十.循环语句-1: 非常之重要. 作用:重复执行一段代码 ü while ü do...while ü for 它们的相同之处,都能够实现循环. 不同的地方,格式不一样,使用的场景略有不同. #10- ...

  8. m_Orchestrate learning system---三十五、php数据和js数据的解耦:php数据(php代码)不要放到js代码中

    m_Orchestrate learning system---三十五.php数据和js数据的解耦:php数据(php代码)不要放到js代码中 一.总结 一句话总结:也就是以html为中介,用html ...

  9. Nodejs学习笔记(十五)--- Node.js + Koa2 构建网站简单示例

    目录 前言 搭建项目及其它准备工作 创建数据库 创建Koa2项目 安装项目其它需要包 清除冗余文件并重新规划项目目录 配置文件 规划示例路由,并新建相关文件 实现数据访问和业务逻辑相关方法 编写mys ...

随机推荐

  1. 如何用Vegas完成视频编辑中的自动跟踪换图

    Vegas作为一款专业的视频剪辑软件,剪辑速度快捷,拥有各种实用工具和特效,同样也可以为用户实现视频换图的需求.今天小编就为大家讲解,如何利用Vegas自动跟踪进行换图,让视频能够更加便捷的呈现. 本 ...

  2. 使用iMindMap思维导图软件的活动策划模板制定策划方案

    活动策划不单单是一个头脑风暴的过程,更是一个整合各项资源.条件的过程.因此我们可以合理的使用思维导图软件来做活动策划.iMindMap(Windows系统)思维导图软件提供了快捷而方便的活动策划模板, ...

  3. 5w 字 | 172 图 | 超级赛亚级 Spring Cloud 实战

    一.PassJava 项目简介 PassJava-Learning 项目是 PassJava(佳必过)项目的学习教程.对架构.业务.技术要点进行讲解. PassJava 是一款 Java 面试刷题 的 ...

  4. go特性-defer

    1:后定义的defer先执行(可以理解为栈的方式) // 222 // 111 func Test1(t *testing.T) { defer fmt.Println("111" ...

  5. Linux初学学习笔记 -----正则表达式和通配符

    简单来说通配符是用来匹配文件名和目录而正则表达式是用来匹配文本内容的 常用的通配符 *:匹配任意多个字符 下面的是以p为开头的目录里面的文件 ?:匹配任意一个字符 [-]:匹配括号内出现的任意一个字符 ...

  6. redis面试问题(二)

    1.redis和其他缓存相比有哪些优点呢 见上一篇 2. 你刚刚提到了持久化,能重点介绍一下么 见上一篇 3.Redis中对于IO的控制做过什么优化? pipeline? 4 有没有尝试进行多机red ...

  7. EntityFramework Core健康检查

    前言 .NET Core提供对应方法可进行健康检查,那么在EF Core中是否也提供了相应的方式呢?EF Core 2.2+(包含2.2)版本提供了针对上下文的健康检查,接下来我们直接利用.NET 5 ...

  8. 微服务架构下 CI/CD 如何落地

    本文系云原生应用最佳实践杭州站活动演讲稿整理.杭州站活动邀请了 Apache APISIX 项目 VP 温铭.又拍云平台开发部高级工程师莫红波.蚂蚁金服技术专家王发康.有赞中间件开发工程师张超,分享云 ...

  9. Django搭建示例项目实战与避坑细节

    Django 开发项目是很快的,有多快?看完本篇文章,你就知道了. 安装 Django 前提条件:已安装 Python. Django 使用 pip 命令直接就可以安装: pip install dj ...

  10. IAR编译错误Error[e16]: Segment ISTACK (size: 0xc0 align: 0) is too long for segment definition. At least 0x8 more bytes needed. The problem occurred while processing the segment

    问题:个人使用的是IARV9.10编译CC2541的工程,没有做任何修改,直接编译出现如下错误 Error[e16]: Segment ISTACK (size: 0xc0 align: 0) is ...