温故而知新之- Javascript 数组类型 (声明数组、类型转换)

举报
余人杰 发表于 2020/08/09 23:36:23 2020/08/09
【摘要】 因为Javascript中知识丰富,学无止境,以后我尽量采取短文章形式进行温故知识,而不长篇大论的介绍,好让大家吸收。Javascript中,数组在编程里是司空见惯的,没有它编程会非常困难,它主要就是用来保存数据,本质跟变量一样,是一个容器。但变量只保存一个数据,而数组可以保存多个。下面我们先来复习下数组两个简单的知识点——声明数组、类型转换。


声明数组


小白可能会问的问题:什么是数组?

满足你:多个变量值的集合,就可以叫做数组,再附送你一个知识,怎么创建数组呢

创建数组

我们可以使用对象方式

new Array('hw91364016', 88, '余人杰'); //['hw91364016', 88, '余人杰']


还有一种字面量创建方式(推荐)

const info = ['余人杰', 'hw91364016'];


上面两种创建的都是一维数组,若你想多维,请看

const array = [['hw91364016', '余人杰'], [91364016]];
console.log('我的名字是:' + array[0][1]); // 我的名字是余人杰


有一个知识点要记一下,当用const声明数组时,我们还可以修改它的值,知道为什么吗?因为数组是引用类型。

const info= ["余人杰", "hw91364016"];
info.push("数组学习");
console.log(info); // ["余人杰", "hw91364016", "数组学习"]


怎么知道数组有多少个元素?使用length属性可以获取。

const info = ["余人杰", "hw91364016", "数组学习"];
console.log(info.length); // 3


使用索引给数组设置值

let info = ['余人杰'];
info[1] = 'hw91364016';
console.log(info); // ['余人杰', 'hw91364016']

使用索引设置值时,可以直接给后面位置设置值,跳过的位置的值是undefined,具体如下:

let info = ["余人杰"];
info[2] = "hw91364016";
console.log(info.length); // 3
console.log(info); // ["余人杰", 空, "hw91364016"]
console.log(info[1]); // undefined


Array.of()

使用Array.of()也可以创建数组,当设置一个数字参数时,与new Array()不同的是,new Array()会创建一个空数组

let info = Array.of(1);
console.log(info); // [1]
let info = new Array(1);
console.log(info); // [空]
info[0]; // undefined

如果我们想知道创建的变量是否为数组,可以使用Array.isArray()进行检测

console.log(Array.isArray(['hw91364016', "余人杰"])); // true
console.log(Array.isArray(8)); //false


类型转换


其他类型可以转换为数组类型,也可以将数组类型转换为字符串。

数组转换字符串的方法:

可以使用String()或者toString()进行转换:转换后的结果是以逗号( , )隔开。

console.log(([2, 5, 8]).toString()); // 2,5,8
console.log(String([1, 4, 7]);); // 1,4,7

我们还可以使用  join  函数进行转换,而且还可以指定分隔符连接字符串。

console.log([2020, 8, 9].join("/")); // 2020/8/9


Array.from()

类数组转换为数组时,可以使用Array.from()函数。何为类数组?

类数组是指可迭代或包含 length 属性的对象。

有三个参数:

1.转换的数据

2.新数组中的每个元素执行的回调函数(类似map函数的回调方法)(可选参数)

3.执行第二个参数回调函数的this对象(可选参数)

let info = '余人杰';
console.log(Array.from(info)); // ["余", "人", "杰"]


给对象设置length属性后,也能将此对象转成数组,但其下标要保证时数值或数值字符串

let info = {
  '0': '余人杰',
  1: 'hw91364016',
  length: 2
};
console.log(Array.from(info)); //  ["余人杰", "hw91364016"]


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。