<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. 最常见的Python异常报错Error

    内置异常 官网链接:https://docs.python.org/zh-cn/3/library/exceptions.html 在 Python 中,所有异常必须为一个派生自 BaseExcept ...

  2. 浅谈Javascript数据属性与访问器属性

    ES5中对象的属性可以分为‘数据属性’和‘访问器属性’两种. 数据属性一般用于存储数据数值,访问器属性对应的是set/get操作,不能直接存储数据值. 数据属性特性:value.writable.en ...

  3. Luogu P4602 [CTSC2018]混合果汁

    题目 把果汁按美味度降序排序,以单价为下标插入主席树,记录每个节点的\(sum\)果汁升数和\(val\)果汁总价. 每次询问二分最小美味度,查询美味度大于等于\(mid\)的总体积为\(L\)的最低 ...

  4. 高效编程之 concurrent.future

    背景 我们知道 Python 中有多线程threading 和多进程multiprocessing 实现并发, 但是这两个东西开销很大,一是开启线程/进程的开销,二是主程序和子程序之间的通信需要 序列 ...

  5. 关于js计算非等宽字体宽度的方法

    准备一个容器 首先在body外插入一个absolute的容器避免重绘: const svgWidthTestContainer = document.createElement('svg'); svg ...

  6. Comet OJ - Contest #13 「火鼠的皮衣 -不焦躁的内心-」

    来源:Comet OJ - Contest #13 芝士相关: 复平面在信息学奥赛中的应用[雾 其实是道 sb 题??? 发现原式貌似十分可二项式定理,然后发现确实如此 我们把 \(a^i\) 替换成 ...

  7. Python 进阶篇

    作者:武沛齐 出处:http://www.cnblogs.com/wupeiqi/articles/5246483.html Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这 ...

  8. 生成二维码功能(js前端)

    生成二维码需要引入qrcode.js和jquery.min.js <!DOCTYPE html> <head> <title>二维码</title> & ...

  9. 已知两个int变量a、b,定义4个方法分别对变量a、b进行加减乘除运算,并测试结果。

    package com.fs.test; public class Test { public void aMethod(int a, int b) { int add = a + b;//*表示加法 ...

  10. PHP实现无限极分类的两种方式

    无限极分类说简单点就是一个类可以分成一个分子类,然后一个子类又可以分另一个子类这样无限分下去,就是好象windows可以新建一个文件夹,然后在这个文件夹里又可以建一个文件夹,PHP要实现无限极分类有两 ...