JS在线运行

版本:

所属目录
点击了解高性能代码运行API
运行结果
教程手册
代码仓库
极速运行
终端运行
图形+终端

                        
以下是用户最新保存的代码
寻找最优的路测线路(bfs:bfs时对四个方向分别进行计算,每一次都采用最大的值,当dx,dy==row-1,tate-1时,停止bfs搜索。将搜索结果放置在数组中,找到数组中的最小值) 发布于:2025-03-28 18:53 【运输时间】(逻辑分析:因为不能超车,所以最后一辆车到达的时间一定是最慢的,用arrived计算所有车辆到达的最大值(每辆车到达的最大值curArrive = n/speed+(i) i是发车的顺序 ),花费的路程只需要用arrived-发车时间(m-1)即可) 发布于:2025-03-28 18:05 战场索敌】(bfs算法:使用visited代表矩阵的每一个下标是否被访问过。循环矩阵,当遇到未被访问且不为‘#’的元素时,进入dfs算法;计算区域内E的数量是否<k如果<k,ans++;) 发布于:2025-03-28 17:52 最佳植树距离 发布于:2025-03-28 17:17 编码能力提升计划(二分+动态规划:二分的左边界是0:每天都看答案;又边界是question.sum-Math.max(...questions),check算法中,let days = 1; // 当前天数,从第1天开始 let i = 0; // 当前处理的题目索引 let maxCost = 0; // 当前天耗时最多的题目 let sum = 0; // 当前天的做题时间总和 let canWatch = true; // 当前天是否可以看答案;sum++;如果sum>T,则看答案:将储存的最大的值-去,然后再进行下一项的比对;如果不能看答案,直接到下一天,将sum,maxCost,canWatch都重置。最后返回days<=m) 发布于:2025-03-28 16:47 推荐多样性(逻辑分析:循环为windows输入元素:对每个输入数组进行取值操作,每次取n个值,然后将这n个元素分别放入到每一个window中,用idx控制输入元素个数,如果idx==n*k,立即停止循环。当list数组内的元素个数小于n时,需要像下一行借元素。然后再将这些元素都插入到window中,最后输出时将所有的window数组都拼成一个) 发布于:2025-03-28 15:43 ## JSTest 发布于:2025-03-28 09:07 【篮球游戏】(双端队列:用一个队列记录数据;定义idx变量代表outpusArr中对应的数组元素。循环inputArr,每次的数据入队,入队后,判断队列的最左边元素与最右边元素是否为当前输出数组的outputs[idx],如果是,queue退出对应元素,idx指向outputArr的下一个元素;如果左右都不匹配,说明不能得出这个序列,推出循环。判断res长度是否与输入长度相等。如果相等,说明是正确答案,输出res,如果不是,说明无解) 发布于:2025-03-27 19:11 宜居星球改造计划(不顶行输入及多源bfs算法:先while循环把matrix输入获取出来,然后遍历一次matrix,找到need数量(No的值),。然后将yes的坐标入栈,初始为第一层。按层判断四个方向是否为NO,如果为NO,就入队。每层结束后,如果need>0,day++;当所有循环结束后,如果need不为0,则输出-1;否则输出day) 发布于:2025-03-27 18:55 【解压报文】(定义四个栈:strStack:用来存储输入中的字母;numStack:用来存储计算过的数字(就是循环次数);repeatNumStack:用来临时存放读取到的数字;idxStack:用来存放重复拼接字符串时,strStack中的开始位置。读取字符串str的每一个元素,当遇到字母时,压入strStack;当读取到‘[’时,说明前面的循环次数num已经读取完毕,把repeatNum中的所有元素组成一个数字压入numStack中,清空repeatNum;然后记录当前字符串栈的长度到idxStack,这个长度就是后面遇到第一个']'时要重复元素在str中的起始位置。当遇到']'时,直接读取idx.pop(),numStack.pop()组成一个新的字符串,重新压回strStack。最后循环结束后输出strstack) 发布于:2025-03-27 18:01 【加密算法】(dfs+回溯:循环二维数组,当找到明文的第一个数组时,使用dfs算法,dfs对四个方向(上、左、右、下)开始递归寻找,如果找到就返回true,找不到就回溯,将visited[i][j]重置为false并将path中的下标组移除。最后path中的结果就是答案) 发布于:2025-03-27 17:24 打印任务排序(先将所有任务都放入一个集合中,集合的key为原数组下标,val为一个数组,初始元素为element本身;定义一个变量i然后循环直至数组长度为0:每次都出第一个元素,比较后面是否有比他大的元素,如果没有就将i放到集合中找到的这个数的第一个元素的值中去,否则就将这个数放到arr的队尾。循环结束后,将集合中的每一个vals中的第二个元素都打印出来,就是结果) 发布于:2025-03-27 16:51 全排列(回溯(backtrack(arr,path)=>{ } )) 发布于:2025-03-27 16:03 观看文艺汇演问题(动态规划:先把每一场表演的开始时间和结束时间算出来放到一个数组中,然后按照开始时间排序,开始时间相同则按照结束时间升序。维护一个dp数组,dp[i]表示到第i场位置最多能参加多少场,循环两次数组,第一层从1-n,第二层从0-i,如果直播j结束后有足够时间(15分钟)赶到直播i,则可以考虑参加直播i,更新dp[i]为当前最大值) 发布于:2025-03-27 15:23 【走梅花桩】(dfs:用一个visited二维数组判断数组是否使用过,避免重复操作;dfs中对offsets的每一个[x+offsetX,y+offsetY]进行判断,如果再x+offsetX,y+offsetY不越界的情况下,ymatrix[x][y]-matrix[x+offsetX][y+offsetY]<=x&&visited[x+offsetX,y+offsetY]不为true,则count= dfs(x+offsetX,y+offsetY,count+1),直到递归结束。然后对二维数组的每一个值进行dfs操作,找到最大值) 发布于:2025-03-27 14:57 九宫格按键输入(用map保存字母模式下的输入顺序,用栈保存字母模式下输入的相同数字,然后对输入字符串进行逻辑判断:如果是#,当前为字母模式时,需要清空栈并输出一个字母,然后切换模式;当输入的是数字时,如果是字母模式,,如果遇到和栈顶不同的数字或/,就清空栈,然后输出一个字母。否则就需要将这个数字压入栈。再输入元素的结尾放一个空格,增加一个else输出逻辑,确保最后一定能清空栈顶元素并输出字母) 发布于:2025-03-26 18:58 【最大值】(自定义排序,如果看a b组成的数字,如果a+b大,a排在B前面。否则b排在a前面) 发布于:2025-03-26 17:57 计算疫情扩散时间(多源图的层序bfs:先初始化矩阵,将矩阵内1的下标入队。然后bfs,bfs时,先遍历当前队列,对当前队列的每一组坐标,判断每一个偏移量处是否为未感染,如果未感染就感染;并将新的偏移坐标入队。循环过当前的size后,stime++。最后输出time) 发布于:2025-03-26 17:49 【火锅】吃到最多刚好合适的菜(把数组整合成第i秒能吃到这个菜,然后拿第一个菜,后面的菜用pre代表前一个菜拿的时间,如果suit[i]-pre>=m,可以拿,ans++) 发布于:2025-03-26 17:28 云短信平台优惠活动(完全背包问题) 发布于:2025-03-26 16:55 寻找符合要求的最长子串(滑动窗口:当右指针指向为数字时,r++,用letterNum记录子串内letter的数量,当letterNum>1时,开始收缩左窗口,直到letterNum==1;收缩完成后,更新最大值,然后重新开始滑动右指针) 发布于:2025-03-26 16:40 计算网络信号(先把arr转换成矩阵。再遍历矩阵,找到信号源,放入starts,然后对每一个starts都进行一遍bfs。bfs算法中,定义一个queue,将[x,y]作为初始bfs节点。每次都shift出节点每次向上下左右四个节点进行寻找。每次搜索matrix[newX][newY]--;如果这个值大于0,将[newX,newY]放入到queue中。) 发布于:2025-03-26 16:16 最长方连续方波信号(先将输入的字符串截断,当连续出现两个0时就把第二个0之前的部分截断。内置临时变量i,当i等于字符串的长度的时候停止循环;然后再对每一个有效字符(长度大于1)的进行判断,将符合条件的提取出来,最后再按照长度排序) 发布于:2025-03-26 15:25 【学生方阵】(暴力破解,分别对周围8个方向进行查找) 发布于:2025-03-26 15:03 树状结构查询(用map模拟树结构,将每一个父亲节点都放到map.get中,然后对map进行dfs遍历) 发布于:2025-03-26 14:50 【数字游戏】(双循环暴力破解) 发布于:2025-03-26 14:32 字符串化繁为简(先对字符串进行预处理:将每一个()内的字母都放入一个集合中,然后把不在()内的字母单独放到一个str中;然后对每一个set进行合并操作:循环这个集合数组,每次进行两两比较,如果这两个集合中的任意一个字母或他对应的大写字母在另一个集合中也出现过,那么这两个集合就能够合并。将合并之后的新集合放到数组中并重新开始循环,直到循环两次后没有任何数组能够合并。集合合并过后就对原字符串进行操作,对每一个字母在集合中进行比对,如果在任意一个集合中,就替换成这个集合中的那个字典排序最小的那个。))(暴力解法75%通过率) 发布于:2025-03-25 17:50 【找单词】(bfs:对matrix内的每个元素与word[k]进行比对,当比对结果正确时将(i,j)放入path中,将used[i,j]==true并对[i,j]四周[i-1,j][i+1,j][i,j-1][i,j+1]进行dfs。如果结果均为false,path弹出,used[i,j]还原为false;如果path的长度等于word的长度,说明找到了结果,直接return true。对矩阵中的每个元素都进行一次dfs,找到正确的值后直接return console.log(path.join(',')) 发布于:2025-03-25 16:40 文本统计分析(输入处理;转义字符处理;) 发布于:2025-03-25 15:43 最大社交距离(定义一个记录有人的座位序号数组,对于seatOrLeave每一个元素来说,如果为退场,就把这个座位从序号数组中删除,如果是1,首先判断已经坐了几个人,如果只有一个人直接坐到队尾,如果不止一个人,就把seat[]中的相邻两个座位idx拿出来,看这两个区间内有无多余的空座位,如果有空座位,记录当前的最大距离和最佳座位号,遍历seatIdx数组;当队尾位置为空时,需要特殊判断// 如果最后一个位置没人 1 0 0 1 0 0 0,这时的当前最佳座位为队尾,最佳距离为seatNum-1-left,每次循环完成后如果bestIdx>0则放入seatIdx中,每次循环完成后重新排序) ``` ``` 发布于:2025-03-25 15:10 模拟目录管理功能(用多叉树模拟文件管理) 发布于:2025-03-24 19:02 项目排期(二分+回溯) 发布于:2025-03-24 18:16 【跳格子3】(动态规划:dp[i]=Math.max(dp[i-k]-dp[i-1])+scores[i]) 发布于:2025-03-24 17:17 中文分词模拟器(将words中的所有元素放入集合中,从sentenes中的每个sentence开始查找,从sentence本身开始查,然后一个字母一个字母的缩小,查到words中有sentence.slice(0,r)时,如果r<sentence.length,就将sentence截断,截断后的新sentence放到sentences的队首。如果一直检查到结尾都没有,那就将首字母截断,将剩余的放入队首重新检查) 发布于:2025-03-24 16:55 二叉树计算 发布于:2025-03-24 16:38 电脑病毒感染(单元最短路径求解: dijkstra算法:用group将所有路径都储存起来;定义visited数组记录已经访问过的节点,dist记录到节点i的最短路径长度;定义一个数组queue,将图的初始节点记录,循环queue,每次推出栈顶元素[u,dist];如果visited[u]==true,代表这个元素已经访问过,continue;否则,从图中找出所有和u相关的路径[u,v,w],dist[u]+w就是从原点到节点v的距离newDist,将这个newdist和dist[v]比较,如果小于dist[v]则更新dist[v]。并将这个节点推入queue中。进行过一次while循环就重新对queue数组排序,确保栈顶元素是最小值) 发布于:2025-03-24 15:49 爱吃蟠桃的孙悟空(二分法,min==1 max==Math.max(...arr) 计算吃完花费的时间,cost<=H?mid = max-1:mid = min+1) 发布于:2025-03-24 14:58 第一题代码 发布于:2025-03-23 17:13 第二题 代码 发布于:2025-03-23 17:12 第三题 代码 发布于:2025-03-23 17:12 模拟商场优惠打折(自定义排序+自定义算法) 发布于:2025-03-21 18:03 开心消消乐(就是孤岛数量,bfs) 发布于:2025-03-21 16:39 【事件推送】(因为是升序数组,直接双指针,每当符合条件的数字对存在时让指向第一个元素的+1,否则就另一个+1) 发布于:2025-03-21 16:20 按单词下标区间翻转文章内容(字符串反转,简单的数组反转) 发布于:2025-03-21 16:10 太阳能板最大面积(取左边和右边最小的板为高,两坐标差为宽相乘;并移动短板,知道i==j) 发布于:2025-03-21 15:49 //省市地图数据 发布于:2025-03-21 00:21 相对开音节(正则解法:判断是否带数字和符号正则:/[^a-z]/;元音正则:[aeiou]辅音正则:[^aeiou]) 发布于:2025-03-20 19:14 最大括号深度(左括号入栈并检查深度,右括号比较栈顶是否为对应的左括号,不是返回0,是出战继续) 发布于:2025-03-20 18:38 最多提取子串数目(逻辑分析:将A中出现的每一个B中的字母进行计数,使用一个集合idx记录b中每个字母的下标;在使用一个集合count记录扫描A时B中每个元素的次数;扫描一遍A的字母c,如果idx[c]!==undefined&&count[idx[c]]<count[idx[c]-1) count[idx[c]++];取count中最后一个元素的值,就是出现的次数 发布于:2025-03-20 18:28 比赛的冠亚季军(// 初始栈放入所有人的编号;// 用栈模拟:不断向stack中插入win lost数组,当stack[stack.length-1]的长度为1时,就已经选出了冠军\) 发布于:2025-03-20 17:59 [更多]
显示目录

在线运行, js在线编译,nodejs在线编程



学习嵌入式的绝佳套件,esp8266开源小电视成品,比自己去买开发板+屏幕还要便宜,省去了焊接不当搞坏的风险。 蜂鸣版+触控升级仅36元,更强的硬件、价格全网最低。

点击购买 固件广场

简介

Node 是一个让 JavaScript 运行在服务端的开发平台
它让JavaScript 成为与PHP、Python、Perl、Ruby等服务端语言平起平坐的脚本语言
Node是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型。
Node 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP、Python、Perl、Ruby 等服务端语言平起平坐的脚本语言。
它发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装。
Node对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好。V8引擎执行Javascript的速度非常快,性能非常好。Node 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。

在线编译运行工具

特性

Node采用一系列“非阻塞”库来支持事件循环的方式。本质上就是为文件系统、数据库之类的资源提供接口。

向文件系统发送一个请求时,无需等待硬盘(寻址并检索文件),硬盘准备好的时候非阻塞接口会通知Node。该模型以可扩展的方式简化了对慢资源的访问, 直观,易懂。 nodejs在线运行

V8引擎本身使用了一些最新的编译技术。这使得用Javascript这类脚本语言编写出来的代码运行速度获得了极大提升,又节省了开发成本。

对性能的苛求是Node的一个关键因素。 Javascript是一个事件驱动语言,Node利用了这个优点,编写出可扩展性高的服务器。

Node采用了一个称为“事件循环(event loop)”的架构,使得编写可扩展性高的服务器变得既容易又安全。

提高服务器性能的技巧有多种多样。Node选择了一种既能提高性能,又能减低开发复杂度的架构。这是一个非常重要的特性。并发编程通常很复杂且布满地雷。Node绕过了这些,但仍提供很好的性能。 nodejs在线运行

历史

2009年2月,Ryan Dahl在博客上宣布准备基于V8创建一个轻量级的Web服务器并提供一套库。
2009年5月,Ryan Dahl在GitHub上发布了最初版本的部分Node包,随后几个月里,有人开始使用Node开发应用。
2009年11月和2010年4月,两届JSConf大会都安排了Node.js的讲座。
2010年年底,Node获得云计算服务商Joyent资助,创始人Ryan Dahl加入Joyent全职负责Node的发展。
2011年7月,Node在微软的支持下发布Windows版本。

nodejs在线运行

模块

Node使用Module模块去划分不同的功能,以简化应用的开发。Modules模块有点像C++语言中的类库。每一个Node的类库都包含了十分丰富的各类函数,比如http模块就包含了和http功能相关的很多函数,可以帮助开发者很容易地对比如http,tcp/udp等进行操作,还可以很容易的创建http和tcp/udp的服务器。

要在程序中使用模块是十分方便的,只需要如下:

在这里,引入了http类库,并且对http类库的引用存放在http变量中了。这个时候,Node会在我们应用中搜索是否存在node_modules的目录,并且搜索这个目录中是否存在http的模块。如果Node.js找不到这个目录,则会到全局模块缓存中去寻找,用户可以通过相对或者绝对路径,指定模块的位置,比如:

var myModule = require('./myModule.js');

模块中包含了很多功能代码片断,在模块中的代码大部分都是私有的,意思是在模块中定义的函数方法和变量,都只能在同一个模块中被调用。当然,可以将某些方法和变量暴露到模块外,这个时候可以使用exports对象去实现。 nodejs在线运行

集成开发环境

具备书写JavaScript的IDE均可。普通的记事本也可以进行开发。

应用方向

在几年的时间里,Node.JS逐渐发展成一个成熟的开发平台,吸引了许多开发者。有许多大型高流量网站都采用Node.JS进行开发,此外,开发人员还可以使用它来开发一些快速移动Web框架。

除了Web应用外,NodeJS也被应用在许多方面,本文盘点了NodeJS在其它方面所开发的十大令人神奇的项目,这些项目涉及到应用程序监控、媒体流、远程控制、桌面和移动应用等等。 nodejs在线运行

第一个Node.js程序:Hello World!

脚本模式

以下是我们的第一个Node.js程序:

console.log("Hello World");

保存该文件,文件名为helloworld.js,并通过node命令来执行:

node helloworld.js

程序执行后,正常的话,就会在终端输出Hello World。 nodejs在线运行

交互模式

打开终端,键入node进入命令交互模式,可以输入一条代码语句后立即执行并显示结果,例如:

$ node
> console.log('Hello World!');
Hello World!
由JSRUN为你提供的JS在线运行、在线编译工具
        JSRUN提供的JS 在线运行,JS 在线运行工具,基于linux操作系统环境提供线上编译和线上运行,具有运行快速,运行结果与常用开发、生产环境保持一致的特点。
yout