一维数组

实现把多维数组转为一维数组的几种方式

和自甴很熟 提交于 2020-04-04 06:34:38
在开发过程中遇到一个比较ip大小的情况,并且遇到了把二维数组转为一维数组的情况,翻下资料,做下总结。 方法一:转字符串法 该例子中,tempArr是一个多维数组,使用join将其转为字符串,在使用split方法转换为一维数组。 缺点: 如果数组中的各个项是number,将不可避免的转为字符串。 /** * 使用转字符串法 */ let tempArr = [1,[2,3],[4,5,[6,7]]]; let result_str1 = tempArr.join(',').split(','); console.log(result_str1); // ["1", "2", "3", "4", "5", "6", "7"] 改进: 使用了map进行再次遍历。 这种情况只适用于数组中各个项都是number类型或string类型的情况 // 可以使用循环改进 function unid(arr){ let result_str1 = arr.join(',').split(','); let result_number = result_str1.map(item=>{ return Number(item); }); return result_number; } console.log(unid(tempArr)); // [1, 2, 3, 4, 5, 6, 7] 方法二

7.数组

荒凉一梦 提交于 2020-03-28 17:25:52
一、数组的概述 1.定义   多个相同数据类型的数据按照一定的顺序排列的集合,使用一个名字命名,并通过编号的方式对这些数据进行统一管理。 2.特点   ①数组是有序排列的;   ②数组本身是引用数据类型,数组中的元素既可以是基本数据类型,也可以是引用数据类型;   ③创建数组会在内存中开辟一整块连续的空间,而数组通过数组名引用的是这块连续空间的首地址;   ④数组一旦初始化完成,其长度就确定了;数组的长度一旦确定,就不能修改;   ⑤通过索引来访问数组中的元素,速度很快 3.分类 按照维数:一维数组、二维数组、多维数组 按照数组中元素的类型:基本数据类型元素的数组、引用数据类型元素的数组 二、一维数组 1.一维数组的声明和初始化 public class test { public static void main(String[] args) { //数组的声明 int[] arr1; String arr2[]; //数组的静态初始化 arr1 = new int[]{1, 2, 3}; //数组的动态初始化 arr2 = new String[4]; //声明+初始化 int[] arr3 = new int[3]; //类型推断 String[] arr4 = {"str1", "str2", "str3"}; } } 2.访问一维数组中的元素 public class

js 标准二维数组变一维数组的方法

独自空忆成欢 提交于 2020-03-27 06:52:19
问题:[[0, 1], [2, 3], [4, 5]] -> [0, 1, 2, 3, 4, 5]? 方法一 利用 es5 的 arr.reduce(callback[, initialValue]) 实现 var arr1 = [[0, 1], [2, 3], [4, 5]]; var arr2 = arr1.reduce(function (a, b) { return a.concat(b)} ); // arr2 [0, 1, 2, 3, 4, 5] 方法二 利用 es6 var arr1 = [[0, 1], [2, 3], [4, 5]]; function flatten(arr) { return [].concat( ...arr.map(x => Array.isArray(x) ? flatten(x) : x) ) } var arr2 = flatten(arr1); // arr2 [0, 1, 2, 3, 4, 5] 优点: 多维数组也可以 比如:var arr = [[1,2],3,[[[4], 5]]] 方法三 利用 apply 实现 var arr1 = [[0, 1], [2, 3], [4, 5]]; var arr2 = [].concat.apply([], arr1); // arr2 [0, 1, 2, 3, 4, 5] 方法四

一维数组打乱顺序shuffle函数

这一生的挚爱 提交于 2020-03-26 02:30:22
$shopObj = new ShopModel(); $this->data = $shopObj->field('id')->select(); //二维数组降一维 $this->data = $this->translatArray2($this->data); //一维数组打算顺序 shuffle($this->data); //长度4分割数组 $this->data = array_chunk($this->data,4); //查出随机的店铺 $this->data = $shopObj->alias('a')->field($this->Lfield) ->join('wd_yylm_shop_attr b','a.id = b.shopid','left') ->where('a.id','in',$this->data[$p-1]) ->select();//查出的二维数组下标是分页P,用In方法查出4个数据 if (empty($this->data)) { $this->msg = '数据为空'; } shuffle(),将一维数组打乱顺序,成功返回1,失败返回0; array_chunk($arr,$num),可以将一维数组$arr长度4个为一组,分割成若干个小数组 来源: https://www.cnblogs.com/hanshuai0921/p

java语言基础组成

自闭症网瘾萝莉.ら 提交于 2020-03-23 10:33:09
java语法(1:关键字,2:标识符,3:注释,4:常量和变量,5:运算符,6:语句,7:函数,8:数组) 1:关键字   定义:被java语言赋予特殊含义的单词   特点:关键字中所有单词都是小写     用于 定义数据类型 的关键字      class,interface,byte,short,int,long,float,double,char,boolean,void    用于 定义数据类型值 的关键字      true,false,null    用于 定义流程控制 的关键字      if,else,switch,case,default,while,do,for,break,continue,return    用于定义 访问权限修饰符 的关键字      private,protected,public    用于 定义类,函数,变量修饰符 的关键字      abstract,final,static,synchronized    用于 定义类与类之间关系 的关键字      extends,implements    用于定义 建立实例及引用实例,判断实例 的关键字      new,this,super,instanceof    用于 异常处理 的关键字      try,catch,finally,throw,throws    用于 包 的关键字

二维数组

风流意气都作罢 提交于 2020-03-11 18:15:41
二维数组 格式1: int [] [] arr = new int [3] [2] ; · 定义了一个名称为arr的二维数组 · 二维数组中有3个一维数组 · 每一个一维数组中有两个元素 · 一维数组的名称分别为 arr[0], arr[1], arr[2] · 给第一个一维数组1脚标位赋值为78的写法是:arr [0] [1] =78 ; // int [] arr = new int [3] ; (一维) int [ ] [ ] arr = new int [ 3 ] [ 2 ] ; // (二维) // 创建一个二维数组,该数组中有3个一维数组,每一个一维数组中有两个元素。 System . out . println ( arr ) ; // 直接打印二维数组 System . out . println ( arr [ 0 ] ) ; //直接打印二维数组中的角标0的一维数组 System . out . println ( arr [ 0 ] [ 0 ] ) ; //直接打印二维数组中的角标0的一维数组中角标为0的元素。 // 默认初始化值 null // 小数组也是实体,都需要在内存中开辟空间 } 二维数组定义方式和内存图解 来源: CSDN 作者: 别来无恙么 链接: https://blog.csdn.net/melody_zz/article/details

ndarray数组的索引和切片

十年热恋 提交于 2020-03-06 10:10:37
索引:获取数组中特定位置元素的过程 切片:获取数组元素子集的过程 import numpy as np 一维数组 一维数组的索引和切片与python中的列表类似 索引:若元素个数为n,则索引下标可表示为[0,1,2,...,n-1]或[-n,-(n-1),-(n-2),...,-2,-1] print(' ' 8+'一维数组的索引和切片'+' ' 8) 若元素个数为n,则索引下标可表示为[0,1,2,...,n-1]或[-n,-(n-1),-(n-2),...,-2,-1] ar1 = np.array([5, 6, 7, 8, 9]) print(ar1[4]) # 索引自左向右从下标0开始 print(ar1[-2]) # 索引自右向左从下标-1递减,最右边为-1,相邻的为-2 切片:切片可用三元素冒号分割 ar1[起始编号 : 终止编号(不含) : 步长],起始编号默认是0,终止编号默认是n,步长默认是1 仍然是ndarray数组 b = ar1[1:4:2] print(b) print(type(b)) 多维数组 ar2 = np.arange(24).reshape((2, 3, 4)) print(' ' 8+'多维数组的索引和切片'+' ' 8) 多维数组的索引,每个维度一个索引值,逗号分隔————r2[ax0上索引,ax1上索引,ax2上索引]

Numpy详解

吃可爱长大的小学妹 提交于 2020-03-02 03:48:59
NumPy 简介 Python并没有提供数组功能。虽然列表可以完成基本的数组功能,但它不是真正的数组,而且在数据量比较大时,使用列表的速度会很慢。为此,Numpy提供了真正的数组功能,以及对数据进行快速处理的函数。 NumPy的主要对象是同种元素的多维数组。这是一个所有的元素都是一种类型、通过一个正整数元组索引的元素表格(通常是元素是数字)。在NumPy中维度(dimensions)叫做轴(axes),轴的个数叫做秩(rank)。 例如,在3D空间一个点的坐标 [1, 2, 3] 是一个秩为1的数组,因为它只有一个轴。那个轴长度为3.又例如,在以下例子中,数组的秩为2(它有两个维度).第一个维度长度为2,第二个维度长度为3. [[ 1., 0., 0.], [ 0., 1., 2.]] NumPy的数组类被称作 ndarray 。通常被称作数组。注意numpy.array和标准Python库类array.array并不相同,后者只处理一维数组和提供少量功能。 数据类型 numpy的数据类型有下面的几个 数据类型 描述 bool_ 以字节存储的布尔值(True 或 False) int_ 默认的整数类型(和 C 的 long 一样,是 int64 或者 int32) intc 和 C 的 int 相同(一般为 int64 或 int32) intp 用于下标的整数(和 C 的

smarty中如何遍历一维数组跟二维数组

不问归期 提交于 2020-02-29 12:42:36
(1)一维数组 可以使用foreach. 比如: 数组:$addr = array( '01' => '广州', '02' => '韶关', 狗蛋大智慧2011版下载 '03' => '深圳', '04' => '珠海', '05' => '汕头', '06' => '佛山', '53' => '云浮', '52' => '揭阳', '51' => '潮州', '20' => '中山', '19' => '东莞', '07' => '江门', '08' => '湛江', '09' => '茂名', '12' => '肇庆', '13' => '惠州', '14' => '梅州', '15' => '汕尾', '16' => '河源', '17' => '阳江', '18' => '清远' ); 可以通过 <!--{foreach from=$addr item=addre}--> <option value="<!--{$addre}-->"><!--{$addre}--></option> <!--{/foreach}--> 输出 PS. 如果是$array = array('value1','value2');这种形式的数组,也可以通过 {section name=id loop=$array} {$array[id]} {/section} 输出 (2)二维数组:

实验八:一维数组的应用

╄→尐↘猪︶ㄣ 提交于 2020-02-27 07:49:19
一、实验内容 1.输入10个学生的分数,输出其总分和平均分。要求用数组实现。 2.顺序查找法。输入5个整数,将它们存入数组a中,再输入一个数x,然后在数组中查找x,如果找到,输出相应的最小下标,否则,输出"Not Found"。 3.求最大值及其下标。输入一个正整数n(1<n≤10), 再输入n个整数, 输出最大值和它所对应的下标。 4.输入一个正整数n (1<n≤10),再输入n个整数,用选择法将它们从大到小排序后输出。 5.找出不是两个数组共有的元素。输入一个正整数n(1<n≤10),再输入n个整数,存入第一个数组中;然后输入一个正整数m(1<m≤10),再输入m个整数,存入第二个数组中,找出所有不是这两个数组共有的元素。 二、前置作业 扫描书上的二维码,结合视频预习第七章二维数组和字符数组内容。并尝试完成下列题目: 1. 编写程序,输出一张九九乘法口决表。提示:将乘数、被乘数和乘积放入一个二维数组中,再输出该数组。 2. 字符串逆序。输入一个以回车符结束的字符串(少于 80 个字符),将该字符串逆序存放,输出逆序后的字符串。 三、附加题 完成课本P41-P42 第1题到第6题(本次附加题满分10分) 附加题是选做题目,如果认为自己前期成绩不理想,想要弥补的同学可以自觉完成,但是一定要自己完成。附加题要求单独发随笔,格式如下: 题目:附加题1 内容:1. 作业题目 代码: