js 字符串换行_分享自己写的一个js的信息打印程序
1、测试代码,保存为【test.html】
Document
效果如下:
2、源码(保存为 write.js)
//生成打印对象的字符串,方便 document.write//或者 innerText 和 innerHTML 调用function getWriteHtml() { var args = Array.from(arguments); //将参数转换成数组 var strRet = ""; var isfirst = true; //第一个不需要打印逗号 for(var arg of args) { if (!isfirst) { strRet += (","); } //不是第一个元素全都要打印逗号 if (arg instanceof Array) { //如果是数组 strRet += '['+getWriteHtml(...arg)+']'; //将 [arg] 转换成 (1,2,3) 的形式,再一次write(递归) } else if (arg instanceof Object) { //如果是对象 { k:v, k:v } 这种形式 strRet += "{"; //打印 { var isfirst2 = true; //第一个不需要打印逗号 for(var k in arg) { //循环取 k if (!isfirst2) { strRet += (","); } strRet += k + ":" + getWriteHtml(arg[k]); //打印 k:v => 其中 v 不知道是啥,所以递归调用打印方法 isfirst2 = false; //表示后面的都不需要打印逗号了 } strRet += "}"; //打印 } } else strRet += (arg); //即不是数组,也不是对象,直接打印就是了 isfirst = false; } return strRet;}function getWriteHtmlPretty() { var info = { level: 0, newLine: true, valColor: '#666', //值颜色 bracketColor: '#a00', //括号颜色 objKeyColor: '#0a0' //键值对里的键颜色 }; function _getWriteHtmlPretty() { var args = Array.from(arguments); //将参数转换成数组 var strRet = ""; var info = args[0]; var clevel = info.level; var spaces = ''.padEnd(clevel, ''); //根据级别来计算缩进 var spaces2 = ''.padEnd(clevel + 1, ''); //根据级别来计算缩进 var isfirst = true; //第一个不需要打印逗号 for(var c=1; c[${_getWriteHtmlPretty(...[info, ...arg])}]`; //将 [arg] 转换成 (1,2,3) 的形式,再一次write(递归) } else if (arg instanceof Object) { //如果是对象 { k:v, k:v } 这种形式 info.level++; if (info.newLine) { strRet += "" + spaces; } strRet += `{`; //打印 { var isfirst2 = true; //第一个不需要打印逗号 for(var k in arg) { //循环取 k if (!isfirst2) { strRet += ","; } if (arg[k] instanceof Object) info.newLine = false; strRet += `${spaces2}${k}:` + `${ _getWriteHtmlPretty(...[info, arg[k]])}`; //打印 k:v => 其中 v 不知道是啥,所以递归调用打印方法 info.newLine = true; isfirst2 = false; //表示后面的都不需要打印逗号了 } strRet += `${spaces}}`; //打印 } info.level--; } else strRet += `${arg}`; //即不是数组,也不是对象,直接打印就是了 isfirst = false; } return strRet; } var args = [info, ...Array.from(arguments)]; //将参数转换成数组 return _getWriteHtmlPretty(...args);}function write() { var html = getWriteHtml(...Array.from(arguments)); document.write(html);}//打印完加个 标签,html里的换行function writebr() { var args = Array.from(arguments); write(...args); write("");}//打印完加个换行符,普通format的换行function writeln() { var args = Array.from(arguments); write(...args); write("");}//格式化打印 writeformat(()=>{ 这里头调打印函数 });function writeformat(func) { write("
"); func(); write("
");}
js 字符串换行_分享自己写的一个js的信息打印程序相关推荐
- java按键发出声音代码_用Java写的一个根据按键发声的程序,为什么只有前16次按键响...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 public void sound(int tone){ try { sequencer = MidiSystem.getSequencer(); seq ...
- sand java_我在sand用java写了一个读取wifi密码的程序,该方法由主方法调用,运行没问题,效果也正常,...
我在sand用java写了一个读取wifi密码的程序,该方法由主方法调用,运行没问题,效果也正常,就是无法连续调用,就是如果调用一次就退出然后再运行就可以,如果用完了,再主方法里选择... 我在san ...
- js 字符串替换_正则精要:玩转JS正则表达式,也许只需这一篇(建议收藏)
0.导引 在正文开始前,先说说正则表达式是什么,为什么要用正则表达式?正则表达式在我个人看来就是一个程序可以识别的规则,有了这个规则,程序就可以帮我们判断某些字符是否符合我们的要求.但是,我们为什么要 ...
- js foreach用法_使用 nodejs 写爬虫(一): 常用模块和 js 语法
本篇是使用 nodejs 写爬虫系列教程的第一篇, 介绍了使用 nodejs 写爬虫过程中常用的模块和一些必须掌握的 js 语法 <!-- more --> 常用模块 常用模块有以下几个: ...
- js 字符串加减法_基于字符串的数值之加减乘除JS算法研究
在我们的日常js项目中,我们不免会碰到需要进行前端计算的场景.而大家都知道,计算机进行计算时存在精度问题,且数值有值域,偶尔会碰到溢出问题.在最近的一个项目中,由于遇到了一个超过20位的数,因此,又不 ...
- 切换图片尝试写第一个js插件 图片轮播
新手发帖,很多方面都是刚入门,有错误的地方请大家见谅,欢迎批评指正 最近在看怎么写js插件,实验写了一个简单的图片轮播插件 jqury.picPlay.js . 基本html框架为<div cl ...
- 构建node.js基础镜像_在Android上构建Node.js应用程序
构建node.js基础镜像 by Aurélien Giraud 通过AurélienGiraud 在Android上构建Node.js应用程序-第1部分:Termux,Vim和Node.js (Bu ...
- python斗地主游戏源码_我用tkinter写的一个斗地主练习复盘python程序
python写的斗地主模拟器使用说明,以及python的标准控件库tkinter的使用示例. http://vdisk.weibo.com/s/C5R1f8s9EVq2y 我用python写的一个斗地 ...
- 自己如何写mysql数据库_自己手写的一个初始化MySQL数据库的工具!
由于项目需要,我写了一个初始MySQL数据库的工具: 一, 思路: (1),首先读取包含mysql语句的脚本(其中有创建数据库,表,插入初始数据等!). (2),然后替换里面的一些数据值(如guid, ...
- Next.js如何引入百度分享(外部引用)类似的外部js,以及如何操作window
前言 近期使用React官方推荐的服务端渲染工具Next.js进行服务端页面编程时遇到引入百度分享等外部JS文件的问题. Next.js可以使用内置组件来装在 <head> 到页面中 im ...
最新文章
- 题目1192:回文字符串
- 汉语转拼音pinyin4j
- dp线长什么样子_怎么样选择好的DP线?
- python画图fig.show()一闪而过的解决方法
- C++ 性能剖析 (四):Inheritance 对性能的影响
- Windows查看网络端口被占用情况netstat命令
- sap中用函数增加断点(break point)
- 常用API-3(System类、Math类、Arrays类、正则表达式)
- 第三章 Redis/SSDB+Twemproxy安装与使用
- java 正则表达式 数量
- 【数学建模】CUMCM-2011B model5 围捕方案确定
- 【独家折扣】淘客小程序源码
- linux重装系统驱动,linux系统下安装驱动方法
- linux dsp开发环境,在ubuntu上搭建uclinux开发环境(转载)--- 第二篇
- 国家标准计算机软件测试文档范文,软件测试相关国家标准.doc
- PHP现代濒危动物毕业论文,保护濒危动物(论文).doc
- 局域网控制软件之有效控制局域网主机带宽
- Realtek HD声卡前置面板音频设置教程(前置音频没声音解决办法)
- 壁纸不够用?教你爬空优美图库的动漫壁纸
- LeetCode(Sorting) 2089Find Target Indices After Sorting Array