JavaScript常见数组方法之如何转置矩阵

目录
  • 一、常见二维数组操作
    • 创建与遍历
    • 【案例】二维数组转置
  • 二、常见数组方法
    • 栈和队列方法
    • 检索方法
    • 数组转字符串
    • 其他方法
  • 总结

今天这篇文章就是来和大家详细聊聊JavaScript常见数组方法,不知道大家有没有学过线性代数呢,如果学过那么矩阵转置那可就太熟悉了。

今天我想试试能不能用数组来实现矩阵转置呢?

想知道,那就接着往下看吧。希望大家读完有所收获,那我辛苦码字也就值了。

一、常见二维数组操作

创建与遍历

在前面的篇章中,已经学习了一维数组的各种创建方式,了解一维数组如何创建后,二维数组的创建就非常的简单了,只需将数组元素设置为数组即可。

在创建完二维数组后,如何遍历二维数组中的元素,对其进行操作呢?

  • 一维数组可以利用for、for…in或for…of(ES6提供)进行遍历。
  • 二维数组只需在遍历数组后,再次遍历数组的元素即可。

另外,在Web项目开发中,还经常通过多维空数组添加元素的方式来创建多维数组。下面以添加二维空数组元素为例进行演示。

若要为二维数组元素(如arr[i][0])赋值,首先要保证添加的元素(如arr[i])已经被创建为数组,否则程序会报“Uncaught TypeError……”错误。

注意

在创建多维数组时,虽然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()方法的第1个参数表示待查找的值。
  • includes()方法的第2个参数用于指定在数组中查找的下标。
  • 设置为大于数组长度时,数组不会被检索,直接返回false。
  • 设置为小于0的数时,则检索的索引位置等于数组长度加上指定的负数,若结果仍是小于0的数,则检索整个数组。

indexOf()方法

indexOf()用于在数组中从指定下标位置,检索到的第一个给定值,存在则返回对应的元素下标,否则返回-1。

注意

indexOf()方法的第2个参数用于指定开始查找的下标:

  • 当其值大于或等于数组长度时,直接返回-1。
  • 当其值为负数时,则查找的下标位置等于数组长度加上指定的负数,若结果仍是小于0的数,则检索整个数组。

lastIndexOf()方法

Array对象提供的lastIndexOf()方法,用于在数组中从指定下标位置检索到的最后一个给定值的下标。与indexOf()检索方式不同的是,lastIndexOf()方法默认逆向检索,即从数组的末尾向数组的开头检索。

注意

lastIndexOf()方法的第2个参数用于指定查找的下标,且由于其采用逆向的方式检索:

当其值大于或等于数组长度时,则整个数组都会被查找。

当其值为负数时,则索引位置等于数组长度加上给定的负数,若其值仍为负数,则直接返回-1。

数组转字符串

开发中若需要将数组转换为字符串时,则可以利用JavaScript提供的方法实现。

join()和toString()方法的相同点:

  • 可将多维数组转为字符串,默认情况下使用逗号连接。
  • 当数组元素为undefined、null或空数组时,对应的元素会被转换为空字符串

join()和toString()方法的不同点:

  • join()方法可以指定连接数组元素的符号。

其他方法

除了前面讲解的几种常用方法外,JavaScript还提供了很多其他常用的数组方法。例如,合并数组、数组浅拷贝、颠倒数组元素的顺序等。

注意

  • slice()和concat()方法在执行后返回一个新的数组,不会对原数组产生影响,剩余的方法在执行后皆会原数组产生影响。
  • splice()方法的第1个参数的值等于或大于数组长度时,从数组末尾开始操作;当该值为负数时,则下标位置等于数组长度加上指定的负数,若其值仍为负数,则从数组的开头开始操作。

总结

到此这篇关于JavaScript常见数组方法之如何转置矩阵的文章就介绍到这了,更多相关JavaScript数组转置矩阵内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • JavaScript常见数组方法之如何转置矩阵

    目录 一.常见二维数组操作 创建与遍历 [案例]二维数组转置 二.常见数组方法 栈和队列方法 检索方法 数组转字符串 其他方法 总结 今天这篇文章就是来和大家详细聊聊JavaScript常见数组方法,不知道大家有没有学过线性代数呢,如果学过那么矩阵转置那可就太熟悉了. 今天我想试试能不能用数组来实现矩阵转置呢? 想知道,那就接着往下看吧.希望大家读完有所收获,那我辛苦码字也就值了. 一.常见二维数组操作 创建与遍历 在前面的篇章中,已经学习了一维数组的各种创建方式,了解一维数组如何创建后,二维数

  • 基于JavaScript Array数组方法(新手必看篇)

    Array类型是ECMAScript中最常用的引用类型.ECMAScript中的数据与其它大多数语言中的数组有着相当大的区别.虽然ECMAScript中的数据与其它语言中的数组一样都是数据的有序列表,但不同的是,ECMAScript数组中的每一项可以保存任何类型的数据,无论是数值.字符串或者是对象.同时,ECMAScript中的数组大小是可以动态调整的,即可以根据数据的添加自动增长以容纳新增的数据.下面总结一下JavaScript中数组常用的操作函数及用法. •创建数组 创建数组主要有构造函数和

  • javascript的数组方法大全

    目录 1:concat(); 2:join(); 3:pop(); 4:shift(); 5:unshift(); 6:push(); 7:reverse(); 8:sort(); 8.1: 8.2: 8.3:排序问题 9:slice(); 10:splice() 11:toString(); 12:valueOf(); 13:IndexOf(); 14:lastIndexOf(); 15:forEach(); 16:map(); 17:filter(); 18:every(); 19:some

  • JavaScript判断数组的方法总结与推荐

    目录 前言 根据构造函数判断(妈妈) instanceof constructor 根据原型对象判断(爸爸) __ proto __ Object.getPrototypeOf() Array.prototype.isPrototypeOf() 根据 Object 的原型对象判断(祖先) Object.prototype.toString.call() Array.isArray() 总结 前言 无论在工作还是面试中,我们都会遇到判断一个数据是否为数组的需求,今天我们就来总结一下,到底有多少方法

  • JavaScript中数组常见操作技巧

    效果图如下所示: Tip: 右键在新标签中打开查看清晰大图 下面介绍JavaScript中的数组对象遍历.读写.排序等操作以及与数组相关的字符串处理操作 创建数组 一般使用数组字面量[]创建新数组,除非想要创建指定长度的数组 // good var arr = []; var arr = ['red', 'green', 'blue']; var arr = [ ['北京', 90], ['上海', 50], ['广州', 50] ]; // bad var arr = new Object()

  • Javascript获取数组中的最大值和最小值的方法汇总

    比较数组中数值的大小是比较常见的操作,比较大小的方法有多种,比如可以使用自带的sort()函数,下面来介绍如下几种方法,代码如下: 方法一: //最小值 Array.prototype.min = function() { var min = this[0]; var len = this.length; for (var i = 1; i < len; i++){ if (this[i] < min){ min = this[i]; } } return min; } //最大值 Array

  • JavaScript中数组的22种方法必学(推荐)

    前面的话 数组总共有22种方法,本文将其分为对象继承方法.数组转换方法.栈和队列方法.数组排序方法.数组拼接方法.创建子数组方法.数组删改方法.数组位置方法.数组归并方法和数组迭代方法共10类来进行详细介绍 对象继承方法 数组是一种特殊的对象,继承了对象Object的toString().toLocaleString()和valueOf()方法 [toString()] toString()方法返回由数组中每个值的字符串形式拼接而成的一个以逗号分隔的字符串 [注意]该方法的返回值与不使用任何参数

  • Javascript数组方法reduce的妙用之处分享

    前言 Javascript数组方法中,相比map.filter.forEach等常用的迭代方法,reduce常常被我们所忽略,今天一起来探究一下reduce在我们实战开发当中,能有哪些妙用之处,下面从reduce语法开始介绍. 语法 array.reduce(function(accumulator, arrayElement, currentIndex, arr), initialValue) 若传入初始值,accumulator首次迭代就是初始值,否则就是数组的第一个元素:后续迭代中将是上一

  • javascript删除数组元素的七个方法示例

    前言 在JavaScript中,除了Object之外,Array类型(数组)恐怕就是最常用的类型了.与其他语言的数组相比,JavaScript中的Array非常灵活.这种灵活性有利有弊,好处是其富有创造性,可以提供各种灵活的解决方案:坏处是容易脑子不够用,因为事实上,它太灵活了,灵活到无法控制的抓狂. 前面调侃了几句,回归正题,这里要总结7个在JavaScript中删除Array元素的方法,分别是利用length属性.delete关键字.pop()栈方法.shift()队列方法.splice()

  • JavaScript遍历数组的三种方法map、forEach与filter实例详解

    本文实例讲述了JavaScript遍历数组的三种方法map.forEach与filter.分享给大家供大家参考,具体如下: 前言 近一段时间,因为项目原因,会经常在前端对数组进行遍历.处理,JS自带的遍历方法有很多种,往往不加留意,就可能导致知识混乱的现象,并且其中还存在一些坑.前端时间在ediary中总结了js原生自带的常用的对数组遍历处理的方法,分别为:map.forEach.filter,在讲解知识点的同时,会类比相识的函数进行对比,这样会有助于思考方法的利与弊. 一.Js自带的map()

随机推荐