通过定时器 setInterval 我们就可以不断的循环打印每一个数组项 setInterval之前的博文已经经过讲解》》传送门 setTimeout与setInterval 定时器与异步循环数组
setInterval(function(){ console.log(sarr[0]);//打印第一项 var alf = sarr.shift();//取出第一项 sarr.push(alf);//插入到数组末尾 },1000);
上栗会不断的打印hello java script
我们知道数组可以存储任意类型的值 那么我们将需要循环执行的函数放在数组中 然后利用队列方法不断的执行,就可以循环执行队列中的方法:
function hello(){ console.log("hello"); } function java(){ console.log("java"); } function script(){ console.log("script"); } var sarr = [hello,java,script]; setInterval(function(){ var alf = sarr.shift();//取出第一项 sarr.push(alf); alf();//执行方法 },1000);
它同样可以循环打印 hello java script 只是更加强大了
数组常用方法汇总
1.排序
javascript数组中已经存在两个可以直接用来重排序的方法:reverse() 和sort()。
reverse()将数组倒叙重排:
var sarr = [1,2,3,4,5,6]; console.log(sarr.reverse()); //6,5,4,3,2,1
还有一个更强大的方法 sort()
默认sort()按照升序重排数组,需要注意的是sort会调用每个项的toString()方法,因此sort实际比较大小的根据是字符串 :
var sarr = [6,2,2,4,5,6]; console.log(sarr.sort()); //2,2,4,5,6,6 升序排列var sarr = [6,2,2,11,4,5,6]; console.log(sarr.sort()); //11,2,2,4,5,6,6
上栗,因为sort实际比较大小的根据是字符串而字符串的比较方法一般是取字符中的第一个字符来进行比较的 所以'11'<2 'a'<'b'
而sort也可以传递一个函数作为参数,它可以重规定数组的排序方式:
function compare(val1,val2){ //sort传递两个参数 值1和值2 if(val1<val2){ //当值1小于值2 返回-1表示将值1向前移动一个位置 return -1; }else if(val1>val2){ return 1; }else{ return 0; } } var sarr = [6,2,2,11,4,5,6]; console.log(sarr.sort(compare)); //[ 2, 2, 4, 5, 6, 6, 11 ] 我们在函数中进行比较 最后结果正常
上栗 如果【val1<val2】返回1的大于返回-1的话就可以倒叙排列;我们也可以自己规定它的排序方式;
2.操作数组
① 将一个数组复制一份副本保存(克隆) concat()方法可以基于当前数组中的所有项创建一个新的数组,传递参数的情况下,它会将参数一并添加到数组末尾
var sarr = ["hello","java","script"]; var farr = sarr.concat("!"); console.log(farr);//[ "hello", "java", "script", "!" ]
② slice() 它能够基于当前数组中的一个或多个项创建一个新的数组,它可以接受1或者两个参数,即要复制项的开始和结束位置,只有一个参数默认结束位置为数组末尾,因此它也可以克隆一个数组;
var sarr = ["hello","java","script"]; var farr = sarr.slice(0); console.log(farr);//[ "hello", "java", "script" ] var farr = sarr.slice(0,1) console.log(farr);//取出0-1 创建副本 //[ "hello" ]
总结
javascript中数组是非常重要的组成部分,学好它可以简化工作中的代码,很多时候你的一长串操作可以试一试将他们放在数组里 通过数组方法进行一系列操作;博文长度有限,学习却没有界限,希望大家能够愉快的学习,更快掌握属于你的前端开发!
以上所述是小编给大家介绍的Javascript中的数组常用方法解析,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章: