<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. react 中 EventEmitter 事件总线机制

    此机制可用于 react 中兄弟组件中的通信 npm install events -S 事件总线: // eventBus.js import {EventEmitter} from 'events ...

  2. python 并发编程 socket 服务端 客户端 阻塞io行为

    阻塞io行为 server.accept server.recv client.send recv,accept  分为两个阶段 1.wait for data 对方把数据经过网络延迟送到自己的操作系 ...

  3. 执行python程序 出现三部曲

    1.执行一个python程序 ,会产生一个进程 ,然后会在内存生成一份内存空间 先把python解释器代码加载到内存里, python解释器代码就是C语言代码 2. 然后再把 自己写的python文件 ...

  4. 第八周课程总结&实验报告

    实验六 Java异常 •实验目的 •理解异常的基本概念: •掌握异常处理方法及熟悉常见异常的捕获方法. • 实验要求 •练习捕获异常.声明异常.抛出异常的方法.熟悉try和catch子句的使用. •掌 ...

  5. centoss7下将命令加开机服务

    https://www.cnblogs.com/hxun/p/11075755.html

  6. 【转帖】Spring Boot 为什么这么火?

    Spring Boot 为什么这么火? 2019/06/03 http://www.ityouknow.com/springboot/2019/06/03/spring-boot-hot.html 没 ...

  7. $APIO~2019$ 游记

    我是鸽子. Upd:我全国倒数第一稳了. Uupd:时间过去好久了,这段时间发生很多事,比如NOIP没了... APIO时候的事也记得不是很清楚了,随便写点颓废资料吧: 如果想吃离酒店最近的一家火锅店 ...

  8. Codeforces1256F_Equalizing Two Strings

    题意 给定两个字符串,可以任意选择s串的一段和t串的相同长度的一段进行翻转,无限次数,问能否通过翻转使得两个字符串相等. 分析 看了题解发现思路很巧妙. 无限次数的子串翻转其实就是相邻两个字符的交换. ...

  9. 不用再去找rem了,你想要的rem都在这

    一.兼容性. 目前,IE9+,Firefox.Chrome.Safari.Opera 的主流版本都支持了rem(大胆用吧,目前几乎所有手机浏览器都支持rem) 二.什么是rem. rem是相对于根元素 ...

  10. 使用vue-cli脚手架快速构建项目

    1.创建一个文件夹,vscode打开 2.ctr + shift+` 打开指令窗口 3.npm i vue-cli -g   安装vue-cli 4.vue -V 测试安装版本 检查是否安装成功 5. ...