084学习js-数组

参考教程:【尚硅谷】JavaScript基础&实战丨JS入门到精通全套完整版

参考文章:Han_python的博客的JavaScript专栏9.10

使用构造函数Array()来创建数组

使用数组[索引] = 值来为对象添加元素。使用数组[索引]来访问对象。
数组中的元素可以是任何数据类型

<script>
   // 新建一个数组(类)的对象
    var arr = new Array();

    // 添加元素
    arr[0] = 0;
    arr[1] = 1;

    // 读取元素
    console.log(arr[0])         // 0

    // 读取数组长度
    console.log(arr.length)     // 2

    // 向数组的最后添加元素
    arr[arr.length] = 2;

    // 修改数组长度,修改前为3
    arr.length = 5;
    console.log(arr)           		// 看截图
    console.log("arr : " + arr);	// 两种打印方式,出来的效果不同


</script>

在这里插入图片描述

构造函数也可以直接传入数组元素
arr2 = new Array(1, 2, 3);
console.log("arr2 : " + arr2);
console.log(arr2.length)        // 3

arr3 = new Array(3);
console.log("arr3 : " + arr3);
console.log(arr3.length)        // 3

在这里插入图片描述
可以看到

创建arr2中,传入多个元素,它们都正常躺进了数组中。
创建arr3时,只传入了一个整数3,构造函数会创建一个长度为3的空数组

探索: 如果传入单个元素时,该元素不是数字,是不是就可以创建一个元素的数组了?

var obj = new Object(3)
arr4 = new Array(obj);
console.log("arr4 : " + arr4);  // arr4 : 3
console.log(arr4.length)    	// 1
console.log(arr4[0])        	// 3

是的,可以!

Array类的方法

在这里插入图片描述

分类一下:
类型方法介绍
头尾操作pop(),删除并返回数组的最后一个元素
push(),向数组的末尾添加一个或更多元素,并返回新的长度。
shift(),删除并返回数组的第一个元素
unshift(),向数组的开头添加一个或更多元素,并返回新的长度。
部分操作slice()从某个已有的数组返回选定的元素
splice()删除元素,并向数组添加新元素。
整体操作reverse()颠倒数组中元素的顺序。
sort()对数组的元素进行排序
join()把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
数组间操作concat()连接两个或更多的数组,并返回结果。
其他toString() 把数组转换为字符串,并返回结果。
toSource() 返回该对象的源代码。
valueOf() 返回数组对象的原始值

此外,使用属性prototype,可以向对象添加属性和方法。

forEach()方法

该方法需要一个函数作为参数,函数有一个形参,会依次将遍历到的元素作为实参的形式传递进来。IE8及以下的浏览器不兼容。

 var arr = ["赵", "周", "李", "孙", "钱"];
	arr.forEach(function (a) {
	console.log(" 姓氏 = " + a);
})

在这里插入图片描述

slice(),splice()函数

参考W3school:JavaScript slice() 方法

  • 取一段
    arrayObject.slice(start,end)
    读取数组的索引start到end(不含)元素并返回。不改变原数组。

start或end,如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。


end 如果没有指定,那么切分的数组包含从 start 到数组结束的所有元素。

使用: var result = arr.slice(开始索引,结束索引);

  • 删一段,或者添一段,或者先删后添
    函数原型: arrayObject.splice(index,howmany,item1,.....,itemX)
参数描述
index必需。
整数,规定添加/删除项目的位置,
使用负数可从数组结尾处规定位置。
howmany必需。
要删除的项目数量。
如果设置为 0,则不会删除项目
item1, …, itemX可选。
向数组添加的新项目
var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"

arr.splice(2,0,"William") 
// 若只写这句,效果是添加: George,John,William,Thomas,James,Adrew,Martin

arr.splice(2,1)
// 若只写这句,效果是删除: George,John,James,Adrew,Martin

arr.splice(2,1,"William")
// 若只写这句,效果是替换: George,John,William,James,Adrew,Martin

arr.splice(2,3,"William")
// 若只写这句,效果是替换: George,John,William,Martin

sort()函数

sort()对于纯数组进行排序时,也是按照Unicode编码来排序。
我们可以通过传入一个回调函数来指定排序规则:

回调函数需要定义两个形参
浏览器会分别使用数组中的元素作为实参去调用回调函数
浏览器会根据回调函数的返回值来决定元素的顺序
如果返回值大于0,则元素会交换位置,否则不变。

arr = [5,4,2,1,6,6,2,3];
arr.sort(function(a,b){
	return a-b;		// 升序排列(非递减序列,且相等的值未改变先后次序)
});

console.log(arr);

如果需要降序排列,则返回b-a

字符串

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值