多维数组的定义

news/2024/12/1 0:31:24/

一. 多维数组

1. 概念

多维数组可以看成是数组的数组。比如二维数组就是一个特殊的一维数组,它的每个元素都是一个一维数组。其他多维数组的概念,大家可以参照二维数组以此类推。

2. 分类

多维数组可以分为:

二维数组;

● 三维数组;

● 其他数组;

其实我们在开发时,真正常用的数组也就是一维数组和二维数组,更多维度的数组很少使用。所以接下来在本篇文章中,主要是给大家讲解二维数组相关的内容。

二. 多维数组

理论上,在Java中我们可以定义出任意维度的数组。但高于二维的多维数组,在实际开发中很少使用,大家知道Java中支持这种数据结构即可。如果你感兴趣,可以尝试着自己构造一个三维数组出来,就不在这里过多讲解啦,可以参考如下:

//动态初始化
int[][][] arr= new int[3][3][2];//静态初始化
int[][][] arr2= {{{1,2,3},{4,5,6},{7,8,9}},{{1,2},{3,4}},{{1,2},{3,4,5}}
};

三、多维数组降维的几种方法

1、数组字符串化

let arr = [[123456],[333],789];
arr += '';
arr = arr.split(',');
console.log(arr); // ['123456' , '333', '789']复制代码

2、递归

functiondemo(arr){var newArr = []for(var i = 0; i < arr.length; i++){if(Array.isArray(arr[i])){//如果是数组,调用递归函数 dimension 将其扁平化,然后再 push 到 newArr 中newArr.push.apply(newArr,demo(arr[i]))}else{//不是数组直接 push 到 newArr中newArr.push(arr[i])}}return newArr
}var array = ['1','2',['2',['6',['4','9'],'8'],'5'],'3','3','2']
var reduce = demo(array)
复制代码

3、利用contact

var a = [1,[2],[3,4]]var result = []for(var i = 0; i<a.length; i++){if(a[i].constructor == Array){result = result.concat(a[i])}else{result.push(a[i])}}console.log(resule) // [1,2,3,4]复制代码

4、利用扩展运算符

var a = [1,[2],[3,4]]var result = []result = [].concat(...a)console.log(result) // [1,2,3,4]复制代码

5、利用apply

var a = [1,2,[3,4]]
var result = []
result = Array.prototype.concat.apply([],a)
console.log(result) // [1,2,3,4]复制代码

6、Array.prototype.flat()

var arr1 = [1,2,[3,4]]
console.log(arr1.flat()) // [1,2,3,4]var arr2 = [1,2,[3,4,[5,6]]]
console.log(arr2.flat()) // [1,2,3,4,[5,6]]var arr3 = [1,2,[3,4,[5,6]]]
console.log(arr3.flat(2)) // [1,2,3,4,5,6]//使用 Infinity 作为深度,展开任意深度的嵌套数组console.log(arr3.flat(Infinity)) // [1,2,3,4,5,6]复制代码

7、使用reduce、concat和递归无限反嵌套多层嵌套的数组

var arr1 = [1,2,3,[1,2,3,4[2,3,4]]]
functionflatDeep(arr1){return arr1.reduce((acc,val) => {Array.isArray(val)? acc.concat(flatDeep(val)) : acc.concat(val), []})
}
console.log(flatDeep(arr1)) // [1,2,3,1,2,3,4,2,3,4]


http://www.ppmy.cn/news/400527.html

相关文章

数据的维度

数据&#xff1a;数据(data)是事实或观察的结果&#xff0c;是对客观事物的逻辑归纳&#xff0c;是用于表示客观事物的未经加工的的原始素材。 维度&#xff1a;一组数据的组织形式 对于一组数据&#xff0c;我们可以在一维方向展开&#xff0c;形成线性关系&#xff1b;我们也…

python多维列表

1、初始化 1. c语言思维 import random matrix[] numberOfRowseval(input("Enter the number of rows:")) numberOfColumnseval(input("Enter the number of the columns")) for row in range(numberOfRows):matrix.append([])for column in range(numbe…

多维数组与矩阵

1.顺时针打印二维数组 2.零所在行列清零 【问题描述】如果矩阵中某个元素为0 ,则将其所在行和列清零 【算法】扫描矩阵&#xff0c;建立行的一维数组以及列的一维数组并做标记 3.Z字型打印矩阵 【算法】分条件判断从左下到右上还是从右上到左下 4.边界为1的最大子方阵 【问题…

维度建模

1 维度建模关键概念 1.1 度量和环境 1.2 事实和维度 在维度建模中&#xff0c;度量称为事实&#xff0c;上下文和环境称为维度。 1.3 事实表 事实常以数值形式出现&#xff0c;而且一般都被大量文本形式的上下文包围着。这些文本形式的上下文描述了事实的“5个w”&#xff…

多维数据模型中维度、度量、层级理解

多维数据模型中维度、度量、层级理解 本文只是对多维数据模型中维度、度量、层级理解的通俗理解&#xff0c;当然不止这些&#xff0c;还会涉及到更多具体细节的概念&#xff0c;本文对此不做介绍。 1. 如何认识&#xff08;看&#xff09;对象&#xff1f; 当人去看、去观测…

多维数组详解

一、数组的逻辑结构 数组作为一种数据结构其特点是结构中的元素本身可以是具有某种结构的数据&#xff0c;但属于同一数据类型。 比如&#xff1a;一维数组可以看作一个线性表&#xff1b; 二维数组可以看作“数据元素是一维数组”的一维数组&#xff1b; 等价于 三维数组可以看…

“小白“如何理解数据库

目录 前言 1.什么是数据库 2.数据库的用处 2.1数据库与文件的对比 3.使用数据库 3.1建立数据库 3.2建立表 3.3存储数据 4.服务器&#xff0c;数据库&#xff0c;表关系 5.数据库的分类 5.1MySQL架构 5.2SQL分类 5.3存储引擎 5.3.1什么是存储引擎 5.3.2如何查看存…

数据降维之多维尺度分析MDS

多维尺度分析法MDS 参考链接&#xff1a;https://www.bilibili.com/video/BV11U4y1A71u 定义 PCA&#xff1a;从本身数据的分布角度去降维。只考虑了数据本身的分布特性&#xff0c;数据点之间的相对位置关系没有考虑。 MDS&#xff1a;多维尺度分析&#xff0c;基本原理是根…