- js从题库中随机抽取指定数的题目
- 2022年02月10日 浏览(200)
- var items = [{name:小白,age:23},{name:小白2,age:23},{name:小白3,age:23},{name:小白4,age:23},{name:小白5,age:23},{name:小白6,age:23},{name:小白7,age:23},{name:小白8,age:23},{name:小白9,age:23},{name:小白10,age:23}]; //抽取随机数组function getRandomArrayElements(arr, count) {var shuffled = arr.slice(0), i = arr.length, min = i - count, temp, index;while (i-- min) {index = Math.floor((i + 1) * Math.random());temp = shuffled[index];shuffled[index] = shuffled[i];shuffled[i]
- 阅读全文>>
- js数组根据相同key合并并把id转数组输出
- 2022年02月07日 浏览(87)
- 最终格式: var logs = [{examNos:[200904760062],id: 809bd3003dba,},{examNos:[200904760062,200904760060],id: 809bd3003dba1111,},{examNos:[200904760062,200904760060],id: 809bd3003dba,}] //修改examNo数组格式var otherUnionLogs = []for(var i=0; ilogs.length; i++){if(logs[i].examNos.length == 1){otherUnionLogs.push({examNo: logs[i].examNos.toString(),ruleId: logs[i].id.toString()})}else{for(j=0; jlogs[i].examNos.length; j++){otherUnionLogs.push({examNo: logs[i].examNos[j],ruleId: logs[i].id.
- 阅读全文>>
- 把多维数组children降维到平级
- 2022年01月29日 浏览(193)
- //把多维数组children降维到平级 1、数据 let data = [{hosp:北京一院,type:门诊,children:[{name1:1, num1:11},{name2:22,num2:23},{name3:32,num3:33},{name4:42,num4:43}]},{hosp:上海协和医院,type:住院,children:[{name1:a, num1:11},{name2:a2,num2:23},{name3:a3,num3:33},{name4:a4,num4:43}]}] 2、方法 let arr1 = []let arr2 = []let arr3 = []data.forEach(item={arr1.push({hosp:item.hosp,type:item.type,})arr2.push(Object.assign({},...item.children))arr3 = arr1.map((item, index) = {re
- 阅读全文>>
- js数组把参数名和下标结合形成一个新的参数
- 2022年01月28日 浏览(146)
- var arr=[{name:122,age:12},{name:1122,age:122}]var arr2 = [] //方法1:for(var i=0; iarr.length; i++){arr2.push({[`name` + (i + 1)]:arr[i].name,[`age` + (i + 1)]:arr[i].age})} //方法2:var arr=[{name:122,age:12},{name:1122,age:122}]var arr2 = []arr.forEach((item, index)={arr2.push({[`name` + (index + 1)]:item.name,[`age` + (index + 1)]:item.age})}) console.log(输出结果,arr2)arr2 = [{age1: 12,name1: 122},{name2: 1122, age2: 122}]
- 阅读全文>>
- js文字转语音插件(speechSynthesis)
- 2022年01月27日 浏览(210)
- 1、参数介绍 var msg = new SpeechSynthesisUtterance();msg.rate = 4 播放语速msg.pitch = 10 音调高低msg.text = 播放文本msg.volume = 0.5 播放音量window.speechSynthesis.speak(msg); 2、调用方法 //播放window.speechSynthesis.speak();//暂停window.speechSynthesis.pause();//继续window.speechSynthesis.resume();//停止window.speechSynthesis.cancel(); 3、官网网址 https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis
- 阅读全文>>
- js计算器时间差(天、时、分秒)
- 2022年01月26日 浏览(194)
- function twoTimeInterval(startTime, endTime) { // 开始时间 let d1 = startTime.replace(/\-/g, /); let date1 = new Date(d1); // 结束时间 let d2 = endTime.replace(/\-/g, /); let date2 = new Date(d2); // 时间相差秒数 let dateDiff = date2.getTime() - date1.getTime(); // 计算出相差天数 let days = Math.floor(dateDiff / (24 * 3600 * 1000)); // 计算出小时数 let residue1 = dateDiff % (24 * 3600 * 1000); // 计算天数后剩余的毫秒数 let hours = Math.floor(residue1 / (3600
- 阅读全文>>
- ES6检查数组中是存在重复数据
- 2022年01月21日 浏览(250)
- 1、ES6判断数组是否存在重复元素 let arr = [1, 2, 3, 4, 5, 2, 3];if ((new Set(arr)).size != arr.length) { console.log(数组有重复值)} 2、获取数组重复的元素 repeat(arr) { var tmp = []; if (Array.isArray(arr)) {arr .concat() .sort() .sort(function(a, b) {if (a == b tmp.indexOf(a) === -1) tmp.push(a); }); } return tmp;}, 想了解删除重复元素,请查看 最简单的js数组去重方法
- 阅读全文>>
- js一个接口执行完后传参给另一个接口执行
- 2022年01月19日 浏览(125)
- //方法一接口function configUrlCodeWebApi(callback){var webData = {}if (callback) {callback(webData) }})方法二接口configUrlCodeWebApi(function(apiData){executionInterfaceApi(apiData)})
- 阅读全文>>
- javascript数组的五种降维写法
- 2022年01月18日 浏览(146)
- 方法一、数组字符串化 let arr = [[222, 333, 444], [55, 66, 77], {a: 1} ]arr += ;arr = arr.split(,);console.log(arr); // [222, 333, 444, 55, 66, 77, [object Object]] 所有的元素会转换为字符串,且元素为对象类型会被转换为 [object Object] ,对于同一种类型数字或字符串还是可以的。 方法二、递归 function reduceDimension(arr){ let ret = []; let toArr = function(arr){ arr.forEach(function(item){ item instanceof Array ? toArr(item) : ret.push(item
- 阅读全文>>
- base64加密解密
- 2022年01月18日 浏览(195)
- function base64Encode (str) { return btoa(encodeURIComponent(str));}function base64Decode (str) { return decodeURIComponent(atob(str));}var b = base64Encode(web建站入门教程);var a = base64Decode(b);console.log(base64加密结果:,b); //返回d2ViJUU1JUJCJUJBJUU3JUFCJTk5JUU1JTg1JUE1JUU5JTk3JUE4JUU2JTk1JTk5JUU3JUE4JThCconsole.log(base64加密结果:,a); //返回web建站入门教程
- 阅读全文>>
- HbuilderX用js判断是在app中执行还是移动
- 2022年01月15日 浏览(123)
- //判断是否在app中打开if (navigator.userAgent.indexOf(Html5Plus) 0) { //在浏览器打开 console.log(我来自非app)} else { //在app打开 console.log(我来自app)}
- 阅读全文>>
- 一个对象数组中根据相同id合并,对象转数组
- 2022年01月14日 浏览(205)
- 基础数据 let eduLevelArray = [{id: "1",name: "张三",edu: "小学"},{id: "2",name: "李四",edu: "初中"},{id: "1",name: "张三",edu: "高中"},{id: "2",name: "李四",edu: "大学"},{id: "3",name: "王五",edu: "研究生"}]; 执行方法 let reArr = eduLevelArray.reduce((obj, item) => {if(obj[item.id]){ obj[item.id].edu.push(item.edu)}else{ item.edu = [item.edu] obj[item.id] = {...item}} return obj;}, {});//执行Object方法let mergedArray = Object.values(reArr);console.log(mergedArray
- 阅读全文>>
- javascript中用replace替换对象中某个字符
- 2022年01月14日 浏览(123)
- var text = 你是我的家,我是你的他,今年十一去见他,一起去看他; //把所有他替换成它var result = text.replace(/\他/g,它); Ps:\为转义字符 g表示全局console.log(result) //结果输出
- 阅读全文>>
- 如何获取window.print()打印回调事件
- 2022年01月04日 浏览(147)
- //定义打印前事件 var beforePrint = function() {console.log(beforePrint);}; //定义打印后事件 var afterPrint = function() {console.log(afterPrint);}//监听window状态if (window.matchMedia) { var mediaQueryList = window.matchMedia(print); //为印添加事件 mediaQueryList.addListener(function(mql) { if (mql.matches) { beforePrint(); } else { afterPrint(); } }); }//打印前事件window.onbeforeprint = beforePrint;//打印后事件window.onafterprint = afterPrint;$(#print).click(fu
- 阅读全文>>
- javascript20个简写技巧
- 2021年12月28日 浏览(153)
- Ps:Longhand表示常规写法,Shorthand表示简写形式 1、 当同时声明多个变量时,可简写成一行 //Longhandlet x;let y = 20; //Shorthandlet x, y = 20; 2、 利用解构,可为多个变量同时赋值 //Longhandlet a, b, c;a = 5;b = 8;c = 12;//Shorthandlet [a, b, c] = [5, 8, 12]; 3、 巧用三元运算符简化if else //Longhand let marks = 26; let result; if (marks = 30) { result = Pass; } else { result = Fail; } //Shorthand let result = marks = 30 ? Pass : Fail; 4、 使用
- 阅读全文>>
- js判断数组的深度(几维数组)
- 2021年12月27日 浏览(163)
- 用到了递归思路,从第一层一直去循环数组,从而获取当前数组是几维数组,代码如下: var arr = [1,2,3,[1,2,3,1,3,[1,2,3,6,4,[1,2,3,1]]],2]var arrNum = 1;//方法:function multiArr(arr){for (i=0;iarr.length;i++){if(arr[i] instanceof Array){arrNum++;arr = arr[i];multiArr(arr);}}return arrNum;}//输出结果:console.log(输出结果:,multiArr(arr));
- 阅读全文>>
- JavaScript实用工具函数开发技巧
- 2021年12月26日 浏览(214)
- 阻止冒泡事件 export const stopPropagation = (e) = { e = e || window.event; if(e.stopPropagation) { // W3C阻止冒泡方法 e.stopPropagation(); } else { e.cancelBubble = true; // IE阻止冒泡方法 } } 防抖函数 export const debounce = (fn, wait) = { let timer = null; return function() { let context = this, args = arguments; if (timer) { clearTimeout(timer); timer = null; } timer = setTimeout(() = { fn.apply(context, args); }, wait); };} 节流函数 export const throttle = (fn, dela
- 阅读全文>>
- 常用18个正则表达式
- 2021年12月24日 浏览(94)
- 1、 中文字符 var pattern = /[\u4e00-\u9fa5]/;var str = 建站教程;console.log(pattern.test(str)); 2、 双字节字符 var pattern = /[^\x00-\xff]/;var str = 建站教程ipkd;console.log(pattern.test(str)); 3、 空白行 var pattern = /\s/;var str = \n;console.log(pattern.test(str)); 4、 Email地址 var pattern = /\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/;var str = ipkd@163.com;console.log(pattern.test(str)); 5、 网址URL var pattern = /^((https|http|ftp|rtsp|mms)?:\/\/)
- 阅读全文>>
- 数组flat()的用法
- 2021年12月24日 浏览(142)
- flat()方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。flat除了有扁平化嵌套数组之外还可以扁平化空项。 实例: let a = [1,2,3,[4,5,[6,7]]]console.log(a.flat()) //默认扁平一层console.log(a.flat(2)) //扁平二层//输出结果[1, 2, 3, 4, 5, Array(2)][1, 2, 3, 4, 5, 6, 7]
- 阅读全文>>
- js用正则删除第一个和最后一个斜杠
- 2021年12月21日 浏览(154)
- js用正则同时删除第一个和最后一个斜杠,如果只有第一个斜杠或只有最后一个斜杠也可以用。 方法一: let arr = ["图像","报告","修改"];let name = '';for(let i=0; iarr.length; i++){name += arr[i] + /};name = name.replace(/^\/|\/$/g, "");console.log('结果输出:', name);//结果输出:图像/报告/修改 方法二: var string = "/图像/报告/修改/";if (string.charAt(0) == "/") string = string.substr(1);if (string.charAt(string.length - 1) ==
- 阅读全文>>