js

Json简单操作的工具类(写入json文件,读取json文件,json文件格式处理)

假装没事ソ 提交于 2020-01-23 00:32:00
package com.xxx.framework.common.util; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.parser.Feature; import com.fasterxml.jackson.core.JsonFactory; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JavaType; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.core.io.ClassPathResource; import java.io.*; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java

JS将时间戳转换为刚刚、N分钟前、今天几点几分、昨天几点几分等表示法

China☆狼群 提交于 2020-01-23 00:25:13
使用Javascript语言,将时间戳转换为类似新浪微博的时间的表示方法。 要求转换规则: 1分钟以内显示为:刚刚 1小时以内显示为:N分钟前 当天以内显示为:今天 N点N分(如:今天 22:33) 昨天时间显示为:昨天 N点N分(如:昨天 10:15) 当年以内显示为:N月N日 N点N分(如:02月03日 09:33) 今年以前显示为:N年N月N日 N点N分(如:2000年09月18日 15:59) function timestampFormat( timestamp ) { function zeroize( num ) { return (String(num).length == 1 ? '0' : '') + num; } var curTimestamp = parseInt(new Date().getTime() / 1000); //当前时间戳 var timestampDiff = curTimestamp - timestamp; // 参数时间戳与当前时间戳相差秒数 var curDate = new Date( curTimestamp * 1000 ); // 当前时间日期对象 var tmDate = new Date( timestamp * 1000 ); // 参数时间戳转换成的日期对象 var Y = tmDate.getFullYear()

JS Bom对象 window location history

半腔热情 提交于 2020-01-22 23:21:45
一、Bom ( 浏览器对象模型 ) 名称 内容 三大bom对象 window、 history 、location 内置对象 String 、 Array、 Math、 Date 、Number 计时器对象 settimeout、 setinterval 自定义对象 object 二、window 1. 滚轮事件 window . onmousewheel = function ( e ) { if ( e . deltaY < 0 ) { // 判断方向 console . log ( "上滑" ) ; } else { console . log ( "下滑" ) ; } } 总结: 滚轮事件中,e.deltaX 和 e.deltaY 可以反映出滚轮的方向, e.deltaX 是负数,滚轮向左,e.deltaX 是正数,滚轮向右; e.deltaY 是负数,滚轮向上,e.deltaY 是正数,滚轮向下。 2. 页面关闭 / 刷新事件 onunload 与 onbeforeunload 的区别: onbeforeunload在onunload之前执行,它还可以阻止onunload的执行。 onbeforeunload是正要去服务器读取新的页面时调用,此时还没开始读取;而onunload则已经从服务器上读到了需要加载的新的页面,在即将替换当前页面时调用

JS

偶尔善良 提交于 2020-01-22 23:00:13
Json 详解 Json 是一种轻量级的数据交换格式,采用一种“键:值”对的文本格式来存储和表示数据,在系统交换数据过程中常常被使用,是一种理想的数据交换语言。在使用 Java 做 Web 开发时,不可避免的会遇到 Json 的使用。 一: JSON 形式与语法 1.1 : JSON 对象 我们先来看以下数据: { “ID”: “1001”, “name”: “张三”, “age”: “24” } 第一个数据就是一个 Json 对象,观察它的数据形式,可以得出以下语法: 1 :数据在花括号中 2 :数据以键:值对的形式出现(其中键多以字符串形式出现,值可取字符串,数值,甚至其他 json 对象) 3 :每两个键:值对以逗号分隔(最后一个键:值对省略逗号) 遵守上面 3 点,便可以形成一个 json 对象。 1.2 : JSON 对象数组 接下来我们再看第二个数据,观察它的数据形式,可以得出以下语法: [ {"ID": 1001, "name": " 张三 ", "age": 24}, {"ID": 1002, "name": " 李四 ", "age": 25}, {"ID": 1003, "name": " 王五 ", "age": 22} ] 1 :数据在方括号中(可理解为数组) 2 :方括号中每个数据以 json 对象形式出现 3 :每两个数据以逗号分隔(最后一个无需逗号)

js 多选文件获取

白昼怎懂夜的黑 提交于 2020-01-22 20:51:18
<html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <input type="file" multiple="multiple" id="test"> <ul id='content'></ul> </body> <script> var test = document.getElementById('test'); test.addEventListener('change', function() { var t_files = this.files; console.log(t_files); var str = ''; for (var i = 0, len = t_files.length; i < len; i++) { console.log(t_files[i]); str += '<li>名称:' + t_files[i].name + '大小' + t_files[i].size / 1024 + 'KB</li>'; }; document.getElementById('content').innerHTML = str; }, false); </script> </html> null 来源: https://www.cnblogs

js正则表达式

回眸只為那壹抹淺笑 提交于 2020-01-22 19:39:41
1.正则表达式基本语法 两个特殊的符号'^'和'$'。他们的作用是分别指出一个字符串的开始和结束。 例子如下: "^The":表示所有以"The"开始的字符串("There","The cat"等); "of despair$":表示所以以"of despair"结尾的字符串; "^abc$":表示开始和结尾都是"abc"的字符串——呵呵,只有"abc"自己了; "notice":表示任何包含"notice"的字符串。 像最后那个例子,如果你不使用两个特殊字符,你就在表示要查找的串在被查找串的任意部分——你并 不把它定位在某一个顶端。 其它还有'*','+'和'?'这三个符号,表示一个或一序列字符重复出现的次数。 它们分别表示“没有或更多”,“一次或更多”还有“没有或一次”。 下面是几个例子: "ab*":表示一个字符串有一个a后面跟着零个或若干个b。("a", "ab", "abbb",……); "ab+":表示一个字符串有一个a后面跟着至少一个b或者更多; "ab?":表示一个字符串有一个a后面跟着零个或者一个b; "a?b+$":表示在字符串的末尾有零个或一个a跟着一个或几个b。 你也可以使用范围,用大括号括起,用以表示重复次数的范围。 "ab{2}":表示一个字符串有一个a跟着2个b("abb"); "ab{2,}":表示一个字符串有一个a跟着至少2个b; "ab{3,5}

js循环/迭代/遍历有多少方法

拜拜、爱过 提交于 2020-01-22 18:48:38
js循环/迭代/遍历有多少方法 JavaScript中存在着很多循环的方法 常见的有 for,while,do while,for in 等, ES5中的 forEach , ES6的 for of , jquery中封装的 each for 局限性很大,通过累加数组索引,来输出数组中的值。一般用来遍历数组,不能遍历对象,因为对象的长度是undefined,无法作为其循环的条件。 let person = { name1 : "fur" , age : "1" , hobbies : { study : "code" , play : "games" } } let arr = [ 'fur' , 'furfur' , 'furfur-jiang' ] console . log ( "遍历对象结果:" ) console . log ( "person对象长度= " + person . length ) console . log ( "遍历数组结果:" ) for ( let i = 0 ; i < arr . length ; i ++ ) { console . log ( arr [ i ] ) } for - 循环代码块一定的次数 while - 当指定的条件为 true 时循环指定的代码块 do/while - 同样当指定的条件为 true 时循环指定的代码块

大熊君说说JS与设计模式之------命令模式Command

不羁的心 提交于 2020-01-22 18:30:55
一,总体概要 1,笔者浅谈 日常生活中,我们在看电视的时候,通过遥控器选择我们喜欢的频道时,此时我们就是客户端的角色,遥控器的按钮相当于客户请求,而具体执行的对象就是命令对象, 命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。 先给个具体事例,如下: 1 function add(x, y) { return x + y; } ; 2 function sub(x, y) { return x - y; } ; 3 function mul(x, y) { return x * y; } ; 4 function div(x, y) { return x / y; } ; 5 6 var Command = function (execute, undo, value) { 7 this.execute = execute; 8 this.undo = undo; 9 this.value = value; 10 } 11 12 var AddCommand = function (value) { 13 return new Command(add, sub, value); 14 }; 15 16 var SubCommand = function (value) { 17

11-项目:JS实现轮播图特效

∥☆過路亽.° 提交于 2020-01-22 18:26:38
btn.onclick 等同于 btn[“onclick”] //任何的 . 都可以用[” “]代替 ie9或以上的透明度用opcity : .8 ;ie8及以下用filter:alpha(opcity=80) 一、焦点图结构及样式 二、主菜单 三、子菜单 四、上下一张按钮,及小圆点高亮 1、定义一个全局变量a,表示当前图片的索引 2、获取当前有多少张图片pics,pics.length 3、点击下一张,a++,如果a>=pics.length,那么a=0 4、用for循环把所有的图片隐藏,所有的的小圆点取消高亮 5、a就是当前图片、小圆点的索引,用pics[a].style或className,就可以显示出来 五、点击小圆点跳转到相应的图片 1、用size表示有多少个圆点 2、用for循环,size作为循环次数。内部dots[d].id = d,给dot添加id值 3、给每一个小圆点绑定事件,a = this.id,当前的id赋予a,再根据a来切换图片 六、自动轮播与清除自动轮播 1、设置一个全局变量timer=null 2、封装一个函数,里面 timer = setInterval(function(){index++; if(index>=size) index=0; change();//更换图片 },3000); 3、调用该函数 4、当鼠标进入图片区域

js把树形数据转成扁平数据

a 夏天 提交于 2020-01-22 18:18:02
我就直接上代码了都是实际项目里面用到的 1.假设这个json就已经是树型结构数据了(如果不知道怎么实现树型结构数据请看我另一篇博客) var compressedArr=afcommon.treeDataToCompressed(json);/*******************************JS封装好的方法*********************************************/ var afcommon=(function ($) { var prefix="|—"; let compressedData=[];// 用于存储递归结果(扁平数据) return { /** * 把扁平数据转成树型结构数据(可以实现无限层级树形数据结构,只适用于单个表的数据) * @param source * @param id * @param parentId * @param children */ treeDataformat : function(source, id, parentId, children){ let cloneData = JSON.parse(JSON.stringify(source)); // 对源数据深度克隆 return cloneData.filter(father=>{ // 循环所有项,并添加children属性 let