-
Count():统计数组中元素的个数,有两个参数,第一个参数是要统计的数组,第二个参数默认为false,如果为true,会递归的统计元素个数
-
Array_sum():求出数组中元素的和,如果元素不是数值型,需要进行类型的自动转换
-
Array_product():计算数组元素的乘积
-
Range():把一个范围的数作为数组的元素,Range(起始值,结束值,步进)第三个参数默认是1
-
Array_fill():用指定的值填充数组,Array_fill(起始下标值,填充个数,填充值)
-
Array_combine():用两个数组作为参数,前一个作为键,后一个作为值,如果两个数组元素数不一致,会报错。
-
Compact():用变量及其值建立 一个数组
-
Extract():把数组中的元素导出到用键做变量名的变量中
-
List():把数组中的值赋给变量,可以跳过某个元素
-
In_array():判断一个值是否在数组中
-
Array_key_exists():判断值是否是某个数组元素的键
-
Array_keys():得到所有数组元素的键,存放到一个新数组中
-
Array_values():把数组元素的值导出到一个新数组中
-
Array_flip():交换数组元素的键和值
-
Shuffle():打乱数组元素的顺序
-
Array_unique():把数组元素中重复的值去掉
-
Explode():将字符串拆分到数组中
-
Implode():把数组元素用分隔符组成一个字符串
-
Array_push:把变量压入数组末尾
-
入栈Array_pop:把数组中的最后一个元素弹出去,出栈
-
Array_push():入栈
- Array_shift():把最前面的数组元素弹出去,出栈
-
Array_unshift():把变量放入数组的前面,相当于从前面入栈
-
Array_map():利用回调函数对数组元素进行处理,也可以调用系统的函数作为回调函数,数组可以是多个作为输入参数,
如果回调函数名不传,写成null,则数组会进行简单的合并操作。
-
Array_walk():对数组元素每个成员应用回调函数
-
Sort():对数组元素进行排序
-
Rsort():对数组元素进行逆向排序,从大到小,同样下标会重新生成
-
Ksort():根据数组元素的键进行从小到大排序
- Krsort():根据数组元素的键进行逆向的排序
-
Asort():排序且保持数组的索引关系
-
Arsort():逆向排序,且保持索引关系
-
Natsort():对数组元素进行自然排序
-
Usort():使用用户自定义的排序函数进行排序
-
Array_merge():合并数组
-
Array_chunk():将数组分割成多个
-
Array_rand():从数组中随机取出一个或多个元素,返回是元素的键!
-
Array_slice():从数组中取出一段元素来
-
Array_intersect ():取相同的元素
-
Array_diff():取不同的元素,只返回第一个数组中的值
-
Array数组类型
2019-02-02 14:59:011、Array类型是我们日常开发中非常常用的数据类型。创建一个数组的方式非常简单: var arr = [1,'name',true,null,...索引值从0开始计算,即0代表数组中的第一项,1代表第二项,以此类推。 2、length属性 数...1、Array类型是我们日常开发中非常常用的数据类型。创建一个数组的方式非常简单:
var arr = [1,'name',true,null,undefined,{},[]];
这是以字面量,也是最常用的创建数组的形式,其中可以包含任何类型的数据。访问其中的某项,可通过索引:
arr[0] //1
索引值从0开始计算,即0代表数组中的第一项,1代表第二项,以此类推。
2、length属性
数组包含一个不可遍历的length属性,反映数组的长度。
var arr = [1,2,3,4]; arr.length //4 数组中有4个项
3、数组的检测方法
3.1 instanceof操作符用来检测左侧的对象是否为右侧的构造函数的实例。若构造函数的原型出现在实例对象的原型链中,结果返回true,否则返回false。
var arr = [1,2,3,4]; arr instanceof Array //true
3.2 isArray方法
instanceof操作符在某种情况下会出现问题,就是在一个网页中包含多个框架的情况下,如果将框架1中的数组传入到框架2中,在跨越环境的情况下使用instanceof符进行检测就会返回false,因为虽然被检测的对象确实是数组类型,但这个数组是框架1中的Array构造函数的实例,而不属于框架2中的Array构造函数,为了解决这个问题,es5新增了isArray方法,该方法用于检测一个值是否为数组,而不受环境的影响。
Array.isArray(arr);
4、转换方法
数组的toLocaleString、toString、valueOf方法继承自Object原型对象,这个三个方法都会返回由数组中的每个项拼接成的以逗号分隔的字符串。
var arr = [1,2,3,4]; arr.toString() //'1,2,3,4' arr.toLocaleString() //'1,2,3,4' arr.valueOf() //'1,2,3,4'
5、join方法
数组的join方法的功能类似于toLocaleString、toString、valueOf方法,可以将数组转换为字符串的形式,不同的是,join能够接受一个参数,用来指定分隔每个项的字符,其余三个方法均以逗号分隔。
var arr = [1,2,3,4]; arr.join('-'); //'1-2-3-4'
若传入空字符串,可实现合并字符的功能:
var arr = [1,2,3,4]; arr.join(''); //'1234'
6、栈方法
6.1 push方法 用于向数组末尾添加项目,并返回数组新的长度
var arr = [1,2,3,4]; arr.push(5); //[1,2,3,4,5]
6.2 pop方法 用于移除数组的最后一项,并返回该项
var arr = [1,2,3,4]; arr.prop(); //[1,2,3,4]
6.3 shift方法 用于移除数组中的头一项,并返回该项
var arr = [1,2,3,4]; arr.shift(); //[2,3,4]
6.4 unshift方法 用于向数组首部添加项目,并返回数组新的长度
var arr = [1,2,3,4]; arr.unshift(0); //[0,1,2,3,4]
7、排序方法
7.1 reverse方法 用于将数组项原有的顺序进行反转,并返回转换后的数组
var arr = [1,2,3,4]; arr.reverse() //[4,3,2,1]
7.2 sort方法 可用于实现数组的升序或降序排列方式,默认情况下,sort采用从小到大的升序排列方式:
var arr = [2,1,4,3]; arr.sort(); // [1, 2, 3, 4]
srot方法会对每个项调用toString方法,比较字符串形式化的值,以此来确定如何排序,任何类型的值都是如此,在对字符串之间进行比较的时候,只会比较两者中的首字符。
var arr = [2,11]; arr.sort(); //[11,2]
之所以会有这样的结果,是因为sort方法比较的不是2与11,而是2与11中的首字符1,1小于2,于是11被排到2的前面。不过sort方法还接受一个比较函数,可以解决此问题。sort方法会依次向比较函数传入两个相邻的数组项,而不会调用toString方法,如果比较函数的返回值为负数,表示第一个参数将排在第二个参数之前,若是整数,则表示第一个参数将排在第二个参数之后。
var arr = [2,11,9,4]; arr.sort((value1,value2) => { return value1 < value2 ? -1 : 1; }); console.log(arr) //[2, 4, 9, 11]
若想实现降序排序,可直接将数组进行反转。
8、合并数组
concat方法可接受一个或多个数组,该方法会创建目标数组的副本,并将接受到的数组中的每个项添加到副本的尾部并返回副本,不影响源数组。
var arr = [1,2,3,4] arr.concat([1,2,3,4]) //[1, 2, 3, 4, 1, 2, 3, 4]
9、在数组中进行截取
slice方法接受两个参数,参数1表示截取的起点,参数2表示截取的终点,该方法返回一个拥有截取内容的新数组,不影响源数组。如果省略第二个参数,会默认截取至末尾。
var arr = [1,2,3,4,5,6] arr.slice(1) //[2, 3, 4, 5, 6] arr.slice(1,5) //[2, 3, 4, 5]
需要用索引来表示终点与起点,slice方法将截取至终点索引值的前一个位置。
10、splice方法
splice方法会返回一个拥有所删除的项目的数组,并且该方法的所有操作都会影响源数组。
10.1 删除
splice方法接受两个参数,第一个表示删除的起点,第二个表示要删除的项目的数量,var arr = [1,2,3,4,5,6] arr.splice(1,2) //[2, 3] arr //[1, 4, 5, 6]
10.2 插入
splice的第三个参数表示要插入的值:var arr = [1,2,3,4,5,6] arr.splice(1,0,1) //[1, 1, 2, 3, 4, 5, 6]
以上表示从索引为1的位置开始,删除0个项目,并插入新值1,若需插入更多的值,可在第三个参数后面传入第四个参数,可插入多个值。
10.3 替换
与插入同理,利用第二个参数删除指定项,在通过后面的参数指定插入的新项var arr = [1,2,3,4,5,6] arr.splice(1,1,1) //[1, 1, 3, 4, 5, 6]
以上表示从索引值为1的位置开始,删除一个项,并在这个位置上插入新值1。
11、查询
indexOf和lastIndexOf可用于从数组中查询某个值是否存在,它们都接受两个参数,第一个表示要搜索的值,第二个可选参数表示搜索的起始位置,indexOf方法是从头开始查找,而lastIndexOf方法是从末尾开始查找,如果找到匹配的项,则返回该项的索引,否则返回-1,需要注意的是,两个值之间必须是全等才算匹配。
var arr = [1,2,3,4,5,6] arr.indexOf(2) //1
数组的遍历
es5为数组新增了5个迭代方法:
every方法:对数组的每项运行一个给定的函数,如果给定函数对每一项都返回true,则every方法最终返回true。
filter方法:对数组的每项运行一个给定的函数,filter方法最终返回一个包含所有调用给定函数结果为true的数组项。
forEach方法:对数组的每项运行一个给定的函数,没有返回值。
map方法:对数组的每项运行一个给定的函数,最终返回一个由给定函数的返回值组成的数组。
some方法:对数组的每项运行一个给定的函数,只要给定的函数的运行有一次返回true,则some方法返回true。
这些方法都接受两个参数,第一个参数是将对每项调用的函数,第二个可选参数可以指定给定函数所运行的作用域。
给定的函数又可接受三个参数,第一个参数为数组项的值,第二个为数组项的索引,第三个参数为调用迭代方法的对象。例1:
var arr = [1,2,3,4,5,6] var result = arr.every(function (val,index,arr) { return val < 10 ? true : false; }) console.log(result) //true
上例中,使用every方法检查数组中的每项值是否小于10,结果返回true,如果你会数组添加一个大于10的值,该方法将返回false。
例2:
var arr = [11,21,31,41,51,6] var result = arr.some(function (val,index,arr) { return val < 10 ? true : false; }) console.log(result) //true
上例中,使用some方法,检查数组中是否存在小于10的值,只要函数有一次返回true,那么some方法就会返回true,而every方法则需要函数每次都返回true时,every方法才最终返回true。
例3:
var arr = [1,2,3,4,5,6,11,20,100] var result = arr.filter(function (val,index,arr) { return val < 10 ? true : false; }) console.log(result) //[1, 2, 3, 4, 5, 6]
上例中,使用filter方法检查数组中的每项是否小于10,并将小于10的数组项装进数组进行返回。
例4:
var arr = [1,2,3,4,5,6,11,20,100] var result = arr.forEach(function (val,index,arr) { console.log(val) })
例5:
var arr = [1,2,3,4,5,6] var result = arr.map(function (val,index,arr) { return ++val; }) console.log(result) //[2, 3, 4, 5, 6, 7]
上例中,使用map方法对数组中的每个项进行++操作,函数的返回值会被包装成一个数组进行返回。
reduce和reduceRight方法
这两个方法都可接受四个参数,第一个参数为对每个数组项调用的函数,第二个可选的值为缩小基础的初始值。
方法中的函数可接受四个参数:
第一个参数代表前一个值,在第一轮迭代中,这个参数代表数组中的索引为0的数组项,在第二轮及往后的迭代中,这个参数代表的是上一轮迭代中函数的返回值。
第二个参数代表下一个数组项,即从索引为1的数组项开始,每次迭代,都会往前挪一位。
第三个参数为数组项的索引
第四个参数为调用迭代方法的对象
这两个方法最终会返回最后一次计算的结果。var arr = [1,2,3,4,5,6] var result = arr.reduce(function (prev,next) { return prev+next; }) console.log(result) //21
上例中,第一次迭代从索引为1的数组项开始,这时候prev为前一个数组项1,next为索引为1的数组项2,在第二轮迭代中,prev为上次迭代中函数的返回值,也就是3,next为下一个数组项,即索引为2的数组项3,reduce方法最终返回最后一次计算的结果,即15+6=21;
reduceRight方法与reduce方法一致,只不过reduce是从左往右进行迭代,而reduceRight方法则是从右往左进行迭代。
-
数组:一个存取数字的魔盒
2020-12-13 10:18:40数组是一组数据的集合,每个元素即是元素,元素可以是任意的数据类型; 以往都是通过声明一个变量(计算机内存中声明一块存储空间)来存放一...2、获取数组中的数值 主要通过数组的下标索引值index来获取 var arr = [1,数组是一组数据的集合,每个元素即是元素,元素可以是任意的数据类型;
以往都是通过声明一个变量(计算机内存中声明一块存储空间)来存放一个数值,而数组则可以存放n个数值;1、数组的创建:
主要有两种方式:new方法和声明数组字面量var arr = new Array(); var arr = [];//创建一个新的空数组 var arr = [1,"大白",true,4,5]//创建一个存放5个任意数据类型的数组
2、获取数组中的数值
主要通过数组的下标索引值index来获取var arr = [1,2,3,4,5,6] alert(arr[0])//获取第一个值
3、数组的遍历
把数组中每一个数值都访问一遍,一个也不能放过;主要用for循环来实现//先创建一个1-100的数组 var arr = [] arr.length = 100; for(var i=0;i<arr.length;i++){ arr[i] = i+1//i是从0开始的 console.log(arr[i]) //将每一个值在控制台取出 }
4、有条件地获取数组中的元素
即在for循环中再加一个条件判断,符合条件的元素可输出var arr =[0,3,5,6,12,45,123,45]; var newArr =[]//声明一个新的空数组用来存储满足条件的值 for(var i=0;i<arr.length;i++){ if(arr[i]>10){ newArr[newArr.length]=arr[i]; }//将所有大于10的数值取出放入newArr,可用于数组去重,反转操作等等 } console.log(newArr)
在终端运行结果如图:
-
【41】递增数组判断是否存在两个树等于给定值
2016-05-19 11:09:37题目:给定单调递增的整数数组[n0, n1, n2,….,nk] array, 以及目标数T,边写一个算法existSum(array, T),来判定在数组array中,是否存在2个数p, q, 满足p + q = T. 该方法返回1如果存在,否则返回0思路: 采用双...题目:
给定单调递增的整数数组[n0, n1, n2,….,nk] array, 以及目标数T,边写一个算法existSum(array, T),来判定在数组array中,是否存在2个数p, q, 满足p + q = T. 该方法返回1如果存在,否则返回0
思路:
- 采用双指针的思路,指向第一个和最后一个。start和end,计算两个数的和all。
- all == T,返回true
- all < T,start++,all > T,end–
代码:
boolean findNUmberWithSum(int data[] ,int length,int T){ boolean found = false; if(data == null || length < 1)return found; int start = 0; int end = length -1; while(start < end){ int all = data[start]+data[end]; if(all == T){ found = true; break; } if(all < T){ start++; } if(all > T){ end--; } } return found; }
-
PHP数组函数
2019-09-25 06:22:25Count():统计数组中元素的个数,有两个参数,第一个参数是要统计的数组,第二个参数默认为false,如果为true,会递归的统计元素个数 Array_sum():求出数组中元素的和,如果元素不是数值型,需要进行类型的...转载于:https://www.cnblogs.com/hujiejeff/p/6641680.html
-
二维数组查找
2018-06-05 23:06:53给定一个数字,在数组中查找这个数字,如果能找到则返回true,如果找不到则返回false 1. bool Find(int target,vector<vector<int>> array) 2. { 3. int row=array.size();//计算... -
VB给 DelPhi7 动态库的结构体数组传值
2017-02-25 15:18:53以上代码是DelPhi7 中定义的动态数组 其提供一个函数如下 int Mzsfgl(int lb,Tsf* sf,Toutput* output);stdcall; 我在VB中这样调用 Public Declare Function mzsfglc Lib "yyjk.dll" (ByRef Lb As String, tsf() ... -
使用numpy计算准确率
2020-04-08 15:47:08准确率即预测正确个数占所有样本的比例,代码如下(数组中一行代表一个样本) import numpy preds = numpy.array([[1, 2, 3, 4], [2, 2, 1, 1]]) true = numpy.array([[1, 2, 3, 4], [2, 2, 2, 1]]) correct_pr... -
你必须知道的495个C语言问题(中文高清版)
2013-03-20 13:28:286.23 sizeof返回的大小是以字节计算的,怎样才能判断数组中有多少个元素呢? 第7章 内存分配 基本的内存分配问题 7.1 为什么这段代码不行?char*answer;printf("Typesomething:\n");gets(answer);printf(... -
判断numpy 中 infinite 和NAN的问题
2021-01-06 23:32:52上面的y是一个数 ,return 返回值为True False np.isnan(vec).any() np.isnan(vec).all() 上面的vec是一个np array,可以判断数组中的任意元素是否合法,特别适合放在train或者shuffle之前 np.isfinite(vec).... -
VBSCRIPT中文手册
2010-11-12 10:13:06IsNumeric 函数 返回 Boolean 值,表示表达式能否当作一个数,用来计算。 IsObject 函数 返回 Boolean 值,表示表达式是否引用了有效的“自动”对象。 Join 函数 返回连接许多包含在一个数组中的子串而创建的字符... -
excel中SMALL函数的用法
2014-02-24 01:03:31语法:SMALL(array,k)参数:array 为需要找到第 k 个最小值的数组或数字型数据区域。k 为返回的数据在数组或数据区域里的位置(从小到大)。说明:SMALL函数计算最小值时忽略逻辑值TRUE和FALSE以及文本型数字。实例:... -
你必须知道的495个C语言问题.[美]Steve Summit(带详细书签).pdf 压缩版
2018-04-08 02:26:50然后又使用一些内存分配技巧使namestr数组用起来好像有多个元素,namelen记录了元素个数。它是怎样工作的?这样是合法的和可移植的吗? 52 2.8 我听说结构可以赋给变量也可以对函数传入和传出。为什么K&R1;却明确... -
你必须知道的495个C语言问题
2015-10-16 14:14:286.23 sizeof返回的大小是以字节计算的,怎样才能判断数组中有多少个元素呢? 第7章 内存分配 基本的内存分配问题 7.1 为什么这段代码不行?char*answer;printf("Typesomething:\n");gets(answer);printf(... -
[你必须知道的495个C语言问题]人民邮电出版社
2012-08-18 19:02:28然后又使用一些内存分配技巧使namestr数组用起来好像有多个元素,namelen记录了元素个数。它是怎样工作的?这样是合法的和可移植的吗? 2.8 我听说结构可以赋给变量也可以对函数传入和传出。为什么K&R1;却明确说明... -
《你必须知道的495个C语言问题》
2010-03-20 16:41:18然后又使用一些内存分配技巧使namestr数组用起来好像有多个元素,namelen记录了元素个数。它是怎样工作的?这样是合法的和可移植的吗? 23 2.8 我听说结构可以赋给变量也可以对函数传入和传出。为什么K&R1却明确... -
你必须知道的495个C语言问题(高清版)
2010-03-31 16:24:09然后又使用一些内存分配技巧使namestr数组用起来好像有多个元素,namelen记录了元素个数。它是怎样工作的?这样是合法的和可移植的吗? 23 2.8 我听说结构可以赋给变量也可以对函数传入和传出。为什么K&R1却明确... -
107个常用javascript语句
2011-03-06 23:59:0740.数学函数:Math.PI(返回圆周率),Math.SQRT2(返回开方),Math.max(value1,value2)返回两个数中的最在值,Math.pow(value1,10)返回 value1的十次方,Math.round(value1)四舍五入函数,Math.floor(Math.random()*(n 1))... -
面试题3:二维数组中的查找:对于在一个每一行从左到右依次递增,每一列从上到下依次递增的二维数组查找一个元素,可以选择从数组左上角开始查找array[i][j],如果目标元素大于array[i][j],i+=1,如果元素小于array...
-
javascript入门笔记
2018-05-15 15:01:07条件是一个boolean类型的数据,如果条件结果为true,则执行表达式1的内容,并将表达式1的结果作为整体表达式的结果。如果条件为false,则执行表达式2的内容,并将表达式2的结果作为整体表达式的结果 ex: var age ... -
JavaScript笔记
2018-09-28 11:21:56|--arr.indexOf(x) 返回x在数组中的下标---经常用于判断元素是否存在。如返回-1,x则不在数组中 18.Number对象: |--x.toFixed(num):可把Number四舍五入为指定小数位数(num:0-20)的数字 |--x.toString():用于把... -
你必须知道的495个C语言问题(PDF)
2009-09-15 10:25:473.12 我需要根据条件把一个复杂的表达式赋值给两个变量中的一 个。可以用下边这样的代码吗? ((condition) ? a : b) = complicated expression; . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 目录iii ... -
VBSCRIP5 -ASP用法详解
2010-09-23 17:15:46IsNumeric 函数 返回 Boolean 值,表示表达式能否当作一个数,用来计算。 IsObject 函数 返回 Boolean 值,表示表达式是否引用了有效的“自动”对象。 Join 函数 返回连接许多包含在一个数组中的子串而创建的字符... -
vb Script参考文档
2009-07-28 22:13:02IsNumeric 函数 返回 Boolean 值,表示表达式能否当作一个数,用来计算。 IsObject 函数 返回 Boolean 值,表示表达式是否引用了有效的“自动”对象。 Join 函数 返回连接许多包含在一个数组中的子串而创建的字符... -
Vue源码详细解析(一)--数据的响应化
2020-11-21 02:42:13// 即get时触发依赖收集(将订阅者加入Dep实例的subs数组中),set时notify订阅者 var dataFn = this.$options.data var data = this._data = dataFn ? dataFn() : {} var props = this._props /... -
PHP网站语句如何优化,希望和高手一起探讨下
2019-06-16 05:05:46//从数组中得到标题,赋值给description $keywords=$loy["keywords"]; //从数组中得到标题,赋值给keywords $lrymd5=md5($fulltxt); $updatetime=time(); if($title==""){$title=str_cut($...
-
Java库之Hutool
-
KEA_开发环境搭建指南.pdf
-
Unity ILRuntime框架设计
-
AttributeError: ‘PipelinedRDD‘ object has no attribute ‘toDF‘
-
使用双模环形谐振器的宽带共模抑制平衡滤波器
-
夜晚小记
-
JT-T 1094-2016 营运客车安全技术条件.pdf
-
React-Portfolio-源码
-
php发送邮箱代码mail.zip
-
KEA Code Warrior调试技巧.pdf
-
fmtok8s-email-rest:从Monolith到K8s ::电子邮件服务(REST)-源码
-
PPTP_NNN 服务生产环境实战教程
-
NFS 网络文件系统
-
节日日销15万美金,从小白到TOP卖家的品牌跨境征程
-
基于ISO7637的车载电源系统设计.pdf
-
泰勒诺迪克-源码
-
python实现链式的栈
-
FastDFS 分布式文件系统部署
-
LyricsX::musical_notes:适用于macOS的Ultimate歌词应用程序-源码
-
C++MFC开发远程控制软件教程(VS2013)