<script type="text/javascript">

var arr = new Array(6)
arr[0] = "00"
arr[1] = "11"
arr[2] = "22"
arr[3] = "33"
arr[4] = "44"
arr[5] = "55" document.write(arr + "<br />")
//arr.splice(2,3,"44") //删除 22(索引 -2) 和 33(索引 -3)
//arr.splice(2,3) //删除 22(索引 -2) 和 33(索引 -3)和 44(索引 -4)
//arr.splice(2,3,44,66) //删除 22(索引 -2) 和 33(索引 -3)和 44(索引 -4) 增加 44 和 66
//arr.splice(0,1); //从索引0开始 删除1个
arr.splice(0,2); //从索引0开始 删除2个
document.write(arr) </script>
<script type="text/javascript">

        var thread = function () {
var nowTime = 0, //线程已经执行了多久
maxTime = 15;//线程最多执行多久
var threadArr = [];//数组模拟线程队列 this.addThread = function (fn) {
threadArr.push(fn)
}
this.start = function () { //启动
doingThread(); //执行doingThread函数
}
var doingThread = function () {
if (threadArr.length > 0) {
if (nowTime < maxTime) {
let now = new Date().getTime(); //时间戳 毫秒级
var method = threadArr[0]; //获得第一个函数;
method(); //执行这个函数
threadArr.splice(0, 1); //数组函数 删除第一个元素
let nowNew = (new Date().getTime() - now); //获得运行时间
nowTime += nowNew; //累加运行时间
doingThread();
} else {//每执行完线程后睡1ms
nowTime = 0;
setTimeout(doingThread, 1);
}
} else {//先睡着等待线程队列
setTimeout(doingThread, 100); //在指定的毫秒数后调用函数; 类似于递归函数,循环执行doingThread函数
}
}
}
var fn = function (num) {
console.log(num)
}
var thread = new thread();
thread.start();
for (let i = 0; i < 2; i++) {
thread.addThread(function () { fn(i);sleep(3000); }); //传递匿名函数到数组
} function sleep(delay) { //延时函数
var start = (new Date()).getTime();
while ((new Date()).getTime() - start < delay) {
continue;
}
}
</script>

https://www.cnblogs.com/charleswone/p/10228699.html

https://segmentfault.com/a/1190000008723632

setTimeout("test()","");  //2000毫秒后执行test()函数,只执行一次。
setInterval("test()",""); //每隔2000毫秒执行一次test()函数,执行无数次。
var interval = window.setInterval("test()","");
window.clearInterval(interval); //停止执行setInterval循环。 当我们想让test()函数每隔2000毫秒执行一次,执行10000毫秒后停止执行时,可以用两者三者结合使用来实现。
var interval2 = window.setInterval("openit2()",);
setTimeout(function() {window.clearInterval(interval2);},); 带参方法执行延迟
setTimeout(function(){return executeQueryTask(data);},"");

https://www.cnblogs.com/tv151579/archive/2013/01/06/2848320.html

js 数组 splice 函数 多线程的更多相关文章

  1. js 数组处理函数

    本文转载自有有<js 数组处理函数> concat 将参数列表连接到原数组后面形成一个新的数组并返回,原有数组不受影响. var arr = ["a","b& ...

  2. js 数组操作函数有:push,pop,join,shift,unshift,slice,splice,concat

    (1)push 和 pop 这两个函数都是对数组从尾部进行压入或弹出操作.push(arg1,arg2,...)可以每次压入一个或多个元素,并返回更新后的数组长度.注意如果参数也是数组的话,则是将全部 ...

  3. JS数组常用函数以及查找数组中是否有重复元素的三种常用方法

    阅读目录: DS01:常用的查找数组中是否有重复元素的三种方法 DS02:常用的JS函数集锦 DS01.常用的查找数组中是否有重复元素的三种方法  1. var ary = new Array(&qu ...

  4. JS数组和函数 小记

    数组 JS中的数组来自window,是一个全局的对象,typeof的值是'object'. 创建数组: 1.Array(3):当只传一个值的时候,会生成一个长度为该数值的空数组. 2.Array(3, ...

  5. JS数组at函数(获取最后一个元素的方法)介绍

    本文介绍js中数组的at函数,属于比较简单的知识普及性文章,难度不大. 0x00 首先,我们可以思考如下一个问题,如果要获取一个数组的最后一个元素(这是很常用的操作),我们应该怎么做? 相信大部分人能 ...

  6. JS 数组及函数

    数组    定义        Array(1,3.14,"aa")            给数据        Array(5)            给长度        [1 ...

  7. 最近学习的 Node.js 数组_函数

    数组的排序,用到了箭头函数 let arr=[, , , , , , ]; /* arr.sort(function (n1, n2){ return n1-n2; }); */ // 等价于上面的写 ...

  8. JS 使用 splice() 对数组去重

    一 问题 有如下 js 数组 connect_clients,需要在去掉所有元素中 user_id, goods_id 这两者的值都相同的元素. [ { id: 'eff040fb-92bc-4f24 ...

  9. js splice函数 数组增加,替换,删除

    splice函数参数介绍: 第一个参数: 对于数数组的操作起始位置. 第二个参数: 从第一个参数开始,删除数组中的个数. 从第三个参数之后所有参数(如果有):执行完第二步之后,都插入到第一个参数的起始 ...

随机推荐

  1. HCL试验3

    PC端配置:配置ip地址 配置网关 交换机(左)配置:①创建VLAN system-view vlan 10 vlan 20 ②配置PC端接口 interface gi 1/0/1 port link ...

  2. Kubernetes网络隔离NetworkPolicy

    Kubernetes要求集群中所有pod,无论是节点内还是跨节点,都可以直接通信,或者说所有pod工作在同一跨节点网络,此网络一般是二层虚拟网络,称为pod网络.在安装引导kubernetes时,由选 ...

  3. C++ string 详细用法

    string不是STL的容器(知道这一点的时候我也很吃惊),但是它与STL容器有着很多相似的操作,不需要担心长度问题,还封装了多种多样的方法,十分好用. 用到的库 #include <strin ...

  4. Oracle恢复ORA-00600: 内部错误代码, 参数: [kcratr_scan_lastbwr] 问题的简单解决

    Oracle恢复ORA-00600: 内部错误代码, 参数: [kcratr_scan_lastbwr] 1. 简单处理 sqlplus / as sysdba startup mount recov ...

  5. sql server 平方根函数SQRT(x)

    --SQRT(x)返回非负数x的二次方根 示例:select  SQRT(9), SQRT(36); 结果:3    6

  6. layer.prompt绑定确认键

    case 'eventkc': top.layer.prompt({ formType: , title: '修改<span style="color:red">' + ...

  7. 普通交叉验证(OCV)和广义交叉验证(GCV)

    普通交叉验证OCV OCV是由Allen(1974)在回归背景下提出的,之后Wahba和Wold(1975)在讨论 了确定多项式回归中多项式次数的背景,在光滑样条背景下提出OCV. Craven和Wa ...

  8. js apply与call的用法与区别

    apply和call function Person(c, d) { return this.a + this.b + c + d } var  o = {a: 1, b: 2} Person.cal ...

  9. splice方法

    此方法有三种用法: 第一种: 删除功能  返回删除内容 索引从0开始 var arr = [1,2,3,4]; var arr2 = arr.splice(0,2); arr2 ===> [1, ...

  10. 缓存机制总结(JVM内置缓存机制,MyBatis和Hibernate缓存机制,Redis缓存)

    一.JVM内置缓存(值存放在JVM缓存中) 我们可以先了解一下Cookie,Session,和Cache Cookie:当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cooki ...