标签:console log JavaScript 参数 数组 var Array array
js中本身就有数组对象,数组中的每一项都可以保存任何类型的数据.且ECMAScript 数组的大小是可以动态调整的,即可以随着数据的添加自动增长以容纳新增数据。接下来创建的列表、队列、链表等对象都是基于数组的。
1. 数组的声明方式:构造函数、对象字面量
数组的声明方式分为两种:构造函数、对象字面量
var array=[]
推荐方式 ,也可赋初值var array=[1,2,3,4,5]
var array = new Array(args)
,args
:单个数字-创建length为args的数组;其它-则创建[args]形式的数组。
数组的判断:Array.isArray(array)
2. 数组的方法
数组转换
.toString()
: 返回由数组中每个值的字符串形式拼接而成的一个以逗号分隔的字符串。var colors = ["red", "green", "blue"]; console.log(colors.toString()); // red,green,blue
数组连接
.join()
:只接收一个参数,即用作分隔符的字符串,然后返回包含所有数组项的字符串。var colors = ["red", "green", "blue"]; console.log(colors.join("*|*")); // red*|*green*|*blue
数组栈方法
.push()
: 接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度。var array=[1,2,3,4]; array.push(5); console.log(array) // 1,2,3,4,5
.pop()
: 从数组末尾移除最后一项,减少数组的 length 值,然后返回移除的项var array=[1,2,3,4,5]; array.pop(); console.log(array) // 1,2,3,4
数组队列方法
.unshift( )
: 在数组前端添加任意个项并返回新数组的长度var array=[1,2,3,4,5]; array.unshift(5); console.log(array) // 5,1,2,3,4 array.unshift(7,6); console.log(array) // 7,6,5,1,2,3,4
.shift( )
: 移除数组中的第一个项并返回该项,同时将数组长度减1var array=[1,2,3,4,5]; array.shift(); console.log(array) // 2,3,4,5
数组重排列方法
.reverse( )
: 反转数组项的顺序。var array=[1,2,3,4,5]; array.reverse(); // 5,4,3,2,1
.sort( )
: 默认情况下,按升序排列。sort( )比较的是字符串,会调用每个数组项的toString( )方法.sort( )方法可以接收一个比较函数作为参数:比较函数接收两个参数,如果第一个参数应该位于第二个之前则返回一个负数,如果两个参数相等则返回0,如果第一个参数应该位于第二个之后则返回一个正数。var array=["aa","cc","bbb"]; array.sort(); // aa,bbb,cc; array.sort(function(num1,num2){ return num1-num2 });
数组的操作方法
.concat( )
:先创建当前数组一个副本,然后将接收到的参数添加到这个副本的末尾,并返回新构建的数组。var array=[11,22,33],array1=[3,4,5]; var newArray= array.concat(array1); console.log(newArray) // [11, 22,33, 3, 4, 5]
.slice( )
:接受一或两个参数,即要返回项的起始和结束位置。- 只有一个参数,返回从该参数指定位置开始到当前数组末尾的所有项;
- 有两个参数,返回起始和结束位置之间的项,但不包括结束位置的项。注意,slice()方法不会影响原始数组。
.splice( )
:-
3个参数:
起始位置
、要删除的项数
和要插入的任意数量的项
。var array=[1,2,3,4,5]; array.splice(2,0,7,8); console.log(array) 1,2,7,8,3,4,5
-
2个参数:
起始位置
、要删除的项数
,返回数组由删除的项组成,原数组的元素则被剔除var array=[1,2,3,4,5] var newArray=array.splice(1,3); console.log(array) // [1, 5] console.log(newArray) // [2, 3, 4]
-
数组的位置方法
.indexOf( )
和.lastIndexOf( )
:接收两个参数——要查找的项和(可选的)表示查找起点位置的索引。.indexOf( )
: 方法从数组的开头(位置0)开始向后查找;var array=[1,2,3,4,5] array.indexOf(2) // 1
.lastIndexOf( )
方法则从数组的末尾开始向前查找。var array=[1,2,3,4,5] array.lastIndexOf(4) // 3
数组迭代
每个方法都接收两个参数: 要在每一项上运行的函数和 (可选的)运行该函数的作用域对象——影响 this 的值。传入这些方法中的函数会接收三个参数:数组项的值、该项在数组中的位置和数组对象本身。
.every( )
: 对数组中的每一项运行给定函数,如果该函数对每一项都返回 true,则返回 true。var array=[1,0,-1]; array.every(function(item){ return item; }) //false;
.filter( )
: 对数组中的每一项运行给定函数,返回该函数会返回 true 的项组成的数组。var array=[1,2,3,4,5]; var result= array.filter(function(item){ return item>3; }) console.log(result) [4,5];
.forEach( )
: 对数组中的每一项运行给定函数。这个方法没有返回值。var array=[12,3,4,5]; array.forEach(function(){ });
.map( )
: 对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。var array=[1,2,3,4,5]; var result= array.map(function(item){ return item*10; }) console.log(result) // 10,20,30,40,50
.some( )
: 对数组中的每一项运行给定函数,如果该函数对任一项返回 true,则返回 true。var array=[1,2,3,4,0]; array.some(function(item){ return item; }) // true
数组归并
.reduce()
: 从数组的第一项开始,逐个遍历到最后var array=[1,2,3,4,5]; var result= array.reduce(function(item,next){ return item+next; }) console.log(result) // 15
.reduceRight()
: 从数组的最后一项开始,向前遍历到第一项var array=[1,2,3,4,5]; var result= array.reduceRight(function(item,next){ return item+next; }) console.log(result) // 15;
这两个方法都会迭代数组的所有项,然后构建一个最终返回的值。这两个方法都接收两个参数:一个在每一项上调用的函数和(可选的)作为归并基础的初始值。
传给.reduce()
和.reduceRight()
的函数接收 4个参数:前一个值
、当前值
、项的索引
和数组对象
。这个函数返回的任何值都会作为第一个参数自动传给下一项。第一次迭代发生在数组的第二项上,因此第 一个参数是数组的第一项,第二个参数就是数组的第二项。
var values = [1,2,3,4,5];
var sum = values.reduce(function(prev, cur, index, array){
return prev + cur;
});
alert(sum); //15
标签:console,log,JavaScript,参数,数组,var,Array,array 来源: https://blog.csdn.net/qq_38987146/article/details/114640888
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。