大家好,我是讯享网,很高兴认识大家。
数组对象创建数组
数组可以存储任何数据类型的数据
存储方式包括文字存储和构造函数存储
数据类型:5 base 1 complex
5 basic:number,string,boolean,null,undefined
1 complex: object,function,array。
var now = new Date();//构造函数模式var arr = new Array();//例如,构造函数的方式是:
//1.字面上创建var arr = [1,2,& # 39;s & # 39,[],{}];console . log(arr);//2.由构造函数创建var arr1 = new Array(1,2,3,4);console . log(arr 1);//如果只有一个参数,而且是number类型,这个参数表示创建的数组个数var arr 2 = new Array(4);console . log(arr 2);//3,遍历数组var arr3 = [1,2,3,4,5,6,7,8,9];for(var I = 0;我& ltarr3 .长度;i++){ console . log(arr 3[I]);}//拆分与array = “2019-11-19 “相关的var strConsole.log (str.split (“-“,2))数组方法:添加和删除添加元素
push:在数组末尾添加元素。可以将多个值传递给该方法,这些值是要相加的数组中的值。返回数组的总长度
unshift:与push方法相反,push添加在数组的末尾。Unshift是在数组的开头添加元素,返回数组的总长度
删除无参数的元素
pop:删除数组末尾的一个元素,这个方法没有参数,返回被删除的元素
shift:删除数组开头的一个元素,返回被删除的元素,这个方法没有参数。
var arr =[& # 39;一& # 39;,’b & # 39,’c & # 39,’d & # 39];//1、push方法:参数可以有多个值,元素var n = arr . push(& # 39;e & # 39,’f & # 39);console . log(n);//返回当前数组的长度console . log(arr);//2、pop方法:删除最后一个元素,不带参数var del = arr . pop();//返回删除的元素console . log(del);console . log(arr);//3、unshift方法:添加元素var CD = arr . un shift(& # 39;g & # 39,’h & # 39);//shift删除头部的一个元素,返回被删除的元素var del 1 = arr . shift();console.log(光盘);//返回当前数组的长度console . log(del 1);console . log(arr);我是一个从事开发多年的老web前端程序员。目前辞职做自己的web前端私人定制课程。今年年初,我花了一个月的时间整理了一个最适合2019年学习的干货web前端学习产品。各种框架整理出来发给每一个前端朋友。想要获取,可以关注我的头条号,后台私信我:前端,免费获取。
splice
添加数组元素、删除数组元素和替换数组元素
需要索引。整数,指定添加/删除元素的位置(具体下标)。使用负数指定距数组末尾的位置。
需要多少个。要删除的项目数。如果设置为0,则不会删除项目。
如果要添加一个数组,并且第二个参数设置为0
item1,…itemX是可选的。添加到数组中的新项。(Add,replace)
注意:
(1)如果添加一个数组元素,需要给这个方法添加三个参数,一个都不能少
(2)如果删除一个数组元素:
一个参数:表示从当前位置开始删除,到末尾
数组包含一个新的被删除元素的数组,如果有的话。
var arr = [1,4,6];//①添加方法arr.splice(2,0,9);console . log(arr);//②删除方法arr . splice(1);//一个参数表示从当前位置删除到arr.splice(1,1)的末尾;//两个参数表示从第一个元素的位置删除,一个元素//③替换方法arr.splice(1,1,10);//从数组的第一个元素删除,删除1,用10 (1,2,& # 39;c & # 39,’d & # 39);console . log(arr);排序数组排序排序和自定义排序排序默认按从小到大(升序)排序,默认按字符串ASCII编码排序。如果使用自定义排序,需要向排序方法传递参数,该方法必须是一个函数
。如果调用此方法时不使用参数,数组中的元素将按字母顺序排序,更准确地说,是按字符编码的顺序排序。
如果要按其他条件排序,需要提供比较函数。
例如:
情况1:如果数组中有纯数字,且位数不相等,则需要自定义排序。
情况二:如果数组中的元素是对象,还需要自定义排序。
此函数比较两个值,然后返回一个解释这两个值的相对顺序的数字。
比较两个相邻的值(最后一个位元素和前一个位元素)
比较函数应该有两个参数A和B,
如果A小于B,在排序后的数组中A应该出现在B之前,它将返回一个小于0的值。
如果A等于B,则返回0。
如果A大于B,将返回大于0的值。
Summary:
If a-b从小到大升序排列
If b-a从大到小降序排列
Date.parse (‘specific time ‘)将具体时间转换为对应的时间戳。
var arr =[{ & # 34;日期& # 34;:’2019-09-01′}, {“日期& # 34;:’2019-09-05′}, {“日期& # 34;:’2019-07-01′}, {“日期& # 34;:’2018-06-01′},]//arr . sort();arr . sort(paixu(& # 39;日期& # 39;));function paixu(attr){ return function(a,b){ var date = date . parse(a[attr]);var date1 = Date.parse(b[attr])返回日期-date 1;} } console . log(arr);数组的选择排序和冒泡排序
原理:首先从原数组中找出最小的元素放在数组的前面,然后从剩下的元素中找出最小的元素放在前一个最小元素的后面,直到排序完毕。
var arr = [5,8,7,4];for(var I = 0;我& lt数组长度;i++){ for(var j = I+1;j & lt数组长度;j++){ if(arr[I]& gt;arr[j]){ var temp = arr[I];arr[I]= arr[j];arr[j]= temp;} } }控制台. log(arr);冒泡排序
概念:
冒泡排序是计算机科学领域中一种简单的排序算法。
分析:1。比较两个相邻的元素,如果前者大于后者,则交换位置。
2.最后一个元素应该是第一轮中最大的一个。
3.根据第一步中的方法比较两个相邻元素。这时,由于最后一个元素已经是最大的了,就不需要再比较最后一个元素了。
这种算法的名字来源于较大的元素会通过交换慢慢“浮”到数列的顶端,就像碳酸饮料中二氧化碳的气泡最终会浮到顶端一样,因此得名“气泡排序”。
数组操作方法
Join根据特定的标志将数组组合成字符串。默认的逗号
split根据特定的分隔符将字符串转换为数组。您可以自定义分隔符的位置。
reverse用于反转数组中元素的顺序(从最大到最小或从最小到最大)
concat用于连接两个或多个数组。
注意:此方法不会更改现有数组,而只会返回所连接数组的副本。
如果indexof元素存在于数组中,则返回下标(如果存在);如果不存在,如果数组中存在lastindexof元素的最后一个位置,则返回-1
;如果不存在,则返回下标;如果不存在,则返回-1 [/br]。
//1.join:根据特定标志将数组组合成一个字符串var arr = [1,2,3];console . log(arr . join(& # 39;-‘));//2.reverse:逆序arr . reverse();console . log(arr);//3.concat:组合数组并返回一个新数组。注意concat var arr 2 =[& # 39;一& # 39;,’b & # 39,’c & # 39];console . log(arr . concat(arr 2));//4.indexOf:元素是否存在于数组中,in-return下标,而不是in -1var arr1 = [1,2,3,& # 39;html & # 39,5,6,7,8];if(arr 1 . index of(& # 34;html & # 34)!=-1){ arr 1 . splice(arr 1 . index of(& # 34;html & # 34),1);} console . log(arr 1);迭代法every
对数组元素做一些判断。
总结:这种方法只有判断的作用,没有特异功能!!!
①如果检测到数组中有一个元素与条件比较不满足,则整个表达式返回false,其余元素不再检测。
②如果所有元素都满足条件,则返回true。
语法格式:
数组名称。every(function (value,下标){搜索条件})或数组名。every(function name)function name(value){ } some
对数组元素进行一些判断,如果其中一个结果为真,则返回的结果为真
语法格式:
数组名。some(function (value,下标){})或数组名。some(函数名)函数名(值){}filter
对数组元素做一些判断。满足条件的元素将组成一个新的数组,返回
的语法格式:
数组名。filter(function (value,下标){})或数组名。filter(函数名)函数名(值){}map
返回一个新数组。数组中的元素是调用函数后原数组元素的值,元素按照原数组元素的顺序处理。
语法格式:
数组名称。map(function (value,下标){})或数组名。map(函数名)函数名(值){}forEach
没有返回值,这是一个简单的循环
语法格式:
数组名。forEach (function (value,下标){})Math object Math object不是Date、String之类的对象,所以没有构造函数Math()
Math . sin()之类的函数只是函数,不是某个对象的方法。
不用创建Math就可以用Math作为对象调用它的所有属性和方法。
语法结构:Math.sin()….
数学对象方法
Floor rounded down(去掉小数部分)
ceil rounded up
abs绝对值(绝对值是指一个数与数轴上原点对应的点之间的距离)只要有小数就向上取整。默认情况下,|||表示正数的绝对值=正数的绝对值,负数=正数的幂
pow,例如:3的三次方[/br] SQ
//Math.floor 向下取整 去掉小数部分console.log(Math.floor(4.666));//Math.ceil 向上取整 只要有小数就进位console.log(Math.ceil(5.001));//Math.round 四舍五入console.log(Math.round(3.69));//Math.abs 绝对值console.log(Math.abs(100));//Math.pow 幂console.log(Math.pow(3,2));//Math.sqrt 开根console.log(Math.sqrt(60));//Math.random 随机数console.log(Math.random() * 10);console.log(Math.random() * 20 + 30);
原文链接:https://www.jianshu.com/p/6a9c8cb8bf30
本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://51itzy.com/4872.html