前言
在前文我们主要介绍了js中程序控制这一章节,今日本文主要介绍有关 js中数组的相关知识点,本着简单易懂的方式逐步介绍,希望能够帮助到你!
一、数组
什么是数组?
创建数组有哪些方式?
-
使用构造函数创建数组 , 创建一个名为 arr 的数组 使用typeof检查一个数组时,会返回object ,使用构造函数创建数组,也可以同时添加元素,元素之间用逗号隔开
例如: var arr = new Array( );var arr = new Array(10, 20, 30 );
-
使用字面量来创建数组 语法——[ ] ,使用字面量创建数组时,可以在创建时就指定数组的元素
例如: var arr = [ ]; //创建数组var arr = [1,2,3,4,5,6 ]; //初始化数组
如何向数组中添加元素?
语法 —— 数组[索引] = 值
例如: arr[0] =10; arr[1] = 20; arr[2] = 30;
console.log(arr); //结果为 “10,20 ,30”
如何读取数组中的元素
例如 console.log(arr[1]); //结果为 "20"
获取数组长度(元素的个数)
-
对于连续的数组,使用length可以获取到数组的长度
-
对于非连续的数组,使用length 会获取到数组的最大索引+1(尽量不要使用非连续的数组)
-
如果修改的length 大于原长度,则多余部分会以 空+,的形式空出来
-
如果修改的length小于原长度,则原本多出的元素会被删除
二、数组的相关方法
向数组最后一个位置添加 / 删除元素
添加:
例如: var arr = [’‘霉霉",“小李子“];arr.push("甜茶",”赛琳娜“); //结果为 [’‘霉霉",“小李子“,"甜茶",”赛琳娜“];
删除:
pop( ) 删除数组中最后一个元素,并将被删除的元素作为返回值返回
例如: var arr = [’‘霉霉",“小李子“];
arr.pop( ); //结果为 ['霉霉']
向数组开头的位置添加 / 删除元素
添加
例如: var arr = [’‘霉霉",“小李子“];
arr.unshift(’好喜欢‘); //结果为 ['好喜欢,’‘霉霉",“小李子“]
删除
例如: var arr = [’‘霉霉",“小李子“];
arr. shift(’好喜欢‘); //结果为 ['“小李子“];
其他方法
slice( )用来从数组提取指定元素
注意点:
该方法不会改变原数组,而是将提取到的元素封装到一个新数组中返回
参数:
-
第一个参数:截取开始的位置的索引,包含开始索引
-
第二个参数:截取结束的未知的索引,不包含结束索引
两个索引也可以同时都是一个负值,如果传递一个负值,则从后往前计算 (-1倒数第一个,-2倒数第二个)
例如: var arr = ["123","456","789","唐僧","猪八戒","沙和尚"];var result=arr.slice(-2,1); //但如果是这种的,则会返回空字符串console.log(result); // ""
第二个参数可以忽略不写,此时会截取从开始索引往后的所有元素
例如: var arr = ["123","456","789"];
var result=arr.slice(0,2);console.log(result); // 输出结果为——————"123
splice( )会影响到原数组,会将指定元素从原数组中删除,并将被删除的元素作为返回值返回
参数:
- 第一个,表示开始位置的索引
- 第二个,表示删除的数量
- 第三个及以后,可以传递一些新的元素,这些元素将会自动插入到开始位置索引前边
例如: var arr = ["123","456","789","唐僧","猪八戒","沙和尚"];
var result=arr.splice(1,2,"牛魔王");console.log(result);console.log(arr); //"123,牛魔王,唐僧,猪八戒,沙和尚
concat( )可以连接两个或多个数组,并将新的数组返回,该方法不会对原数组产生影响
例如: var arr =[……];var arr1 = [……];var result = arr.concat(arr1,“牛魔王”,123);
join()该方法可以将数组转换为一个字符串,该方法不会对原数组产生影响,而是将转换后的字符串作为结果返回,在join( )中可以指定一个字符串作为参数,这个字符串将会成为数组中元素的连接符,默认是用 , 连接
例如: var arr = ["蜘蛛精","白骨精","玉兔精"];
var result = arr.join("@-@"); //指定字符之间的连接符console.log(result); // "蜘蛛精@-@白骨精@-@玉兔精"
reverse( ) 该方法用来反转数组(前面的元素去后面,后面的去前面)会直接修改原数组
例如: var arr = ["蜘蛛精","白骨精","玉兔精"];
var result = arr.reverse();console.log(result); // "玉兔精,白骨精,蜘蛛精"
sort( ) 指定数组中元素的排序情况,默认按照 uniconde编码排序,但对于数字排序,可能没有那么准确,所以需要自己来指定排序的规则——
在sort( )添加一个回调函数,来指定排序规则
-
回调函数需要定义两个形参,浏览器将会分别使用数组中的元素作为实参去调用回调函数
-
浏览器会使用哪个元素调用不确定,但显示出来时 形参a 一定在 形参b 前面
-
浏览器会根据回调函数的返回值来决定元素的顺序
-
如果返回一个大于0的值,则元素会交换位置
-
如果返回一个小于0的值,则元素位置不变
-
如果返回0,则认为两个元素相等
return a-b; //利用a-b 的值判断两个值谁大谁
-
如果需要升序排列,则返回a-b
-
如果需要降序排列,则返回b-a
总结
以上就是所要和大家分享的内容,依旧诚挚祝福屏幕前的你健康快乐,平安幸福!