js改变数组的方法,c语言数组3×4矩阵转置
这篇文章给大家带来了一些关于JavaScript的知识,主要介绍了常见的数组方法以及教你如何转置矩阵的相关问题,包括创建和遍历、堆栈和队列、检索方法等等。希望对你有帮助。
推荐:javascript教程
创建与遍历
在前一章中,我已经学习了创建一维数组的各种方法。知道了如何创建一维数组后,二维数组的创建就很简单了,只需将数组元素设置为数组即可。
在创建完二维数组后,如何遍历二维数组中的元素,对其进行操作呢?
可以通过使用for、for…in或for … of(由ES6提供)来遍历一维数组。二维数组只需要遍历完数组后再遍历一次数组的元素。此外,在Web项目开发中,多维数组通常是通过向多维空数组添加元素来创建的。以下是添加二维空数组元素的示例。
要给二维数组元素赋值(比如arr[i][0]),首先要确保添加的元素(比如arr[i])已经创建为数组,否则程序会报告“uncaughttypeerror …”错误。
注意
在创建多维数组时,虽然JavaScript并没有限制数组的维数,但在实际应用中,为了方便代码读取、调试和维护,还是建议使用三维或三维以下的数组来保存数据。
【案例】二维数组的换位
二维数组的转置是指将二维数组的水平元素保存为垂直元素。
代码实现思想:
求规则:res[0][0]=arr[0][0],res[0][1]=arr[1][0],res[0][2]=arr[2][0]。结论:res[i][j]=arr[j][i]。res数组长度=arr元素的长度(如arr[0])。RES元素的长度(如res[0])=长度=arr数组。根据和创建并遍历res,根据转置。
栈和队列方法
在JavaScript中,除了前面解释的添加和删除数组元素的方式,还可以使用Array对象提供的方法来模拟堆栈和队列操作。
在数组的末尾或开头添加一个新元素。删除数组末尾或开头的数组元素。
push()和unshift()方法的返回值是新数组的长度。pop()和shift()方法返回移除的数组元素。
检索方法
在开发中,检查给定值是否为数组,或者查找指定元素在数组中的位置。
除了Array.isArray()方法,表中其他所有方法默认从指定的数组索引开始搜索,搜索方法与运算符“===”相同,即只有同余才会返回成功结果。
includes()和Array.isArray()方法
includes()方法的第一个参数指示要查找的值。includes()方法的第二个参数用于指定要在数组中找到的下标。当设置为大于数组长度时,将不检索数组,直接返回false。当设置为小于0的数字时,检索到的索引位置等于数组长度加上指定的负数。如果结果仍然是一个小于0的数,将检索整个数组。indexOf()方法
Index()用于从数组中指定的下标位置检索第一个给定值。如果存在,则返回对应的元素下标;否则,它将返回-1。
注意
index()方法的第二个参数用于指定开始搜索的下标:
当其值大于或等于数组长度时,直接返回-1。当其值为负时,搜索的下标位置等于数组长度加上指定的负数。如果结果仍然是一个小于0的数,那么将检索整个数组。lastIndexOf()方法
Array对象提供的lastIndexOf()方法用于从数组中指定的下标位置检索最后一个给定值的下标。与indexOf()检索方法不同,lastIndexOf()方法默认反向检索,即从数组末尾到数组开头。
注意
lastIndexOf()方法的第二个参数用于指定搜索的索引,因为它是以相反的方式检索的:
当它的值大于或等于数组的长度时,将搜索整个数组。
当其值为负时,索引位置等于数组长度加上给定的负数。如果它的值还是负数,就直接返回-1。
数组转字符串
如果您需要在开发中将数组转换为字符串,可以使用提供的方法
多维数组可以转换成字符串,默认情况下字符串之间用逗号连接。当数组元素未定义、为null或空数组时,相应的元素将被转换为空字符串join()和toString()方法的相同点:。
join()方法可以指定连接数组元素的符号。
其他方法
除了前面解释的几种常用方法,JavaScript还提供了很多其他的常用数组方法。比如合并数组,浅拷贝数组,逆序数组元素等。
join()和toString()方法的不同点:
slice()和concat()方法在执行后返回一个新数组,这不会影响原来的数组。其余的方法将在执行后影响原始数组。当splice()方法的第一个参数的值等于或大于数组的长度时,运算从数组的末尾开始;当值为负时,下标位置等于数组长度加上指定的负数。如果该值仍然为负,则运算从数组的开头开始。推荐:javascript教程以上是JavaScript常用的数组方法以及如何转置矩阵的细节。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。