充分利用JavaScript自带原生方法前端工程师对性能优化的功力

  一向以活好著称的我给大家来点精华,不搞假大空,直接上实操,不用看懂js判断字符串包含小数点,收藏就完了,以后你肯定会用到的。

  今天带来的是前端开发中经常碰到的数字问题,解决方式有些过于粗暴,未来还会不断美化更新。

  也欢迎大家关注我的Github(点击原文链接),共同学习js判断字符串包含小数点,共同提高。编者不才,如有问题,欢迎雅正,若有收获,请尽情用star羞辱我。

  充分利用JavaScript自带原生方法解决问题

  前端页面和数据处理虽然看起来简单,但是一个优秀的前端工程师对于细节的把控也是至关重要的,如何合理处理业务也体现前端工程师对性能优化的功力

  获取数组最大值和最小值

  let arr = [1,2,3,4,5,6,7];arr.sort(function (a, b) { return a-b;}); //sort传入一个排序函数,a-b为升序排序,b-a为降序排序let min = arr[0]; // 1let max = arr[arr.length - 1]; //7

  let arr = [1,2,3,4,5,6,7];let max = Math.max.apply(null, arr);let min = Math.min.apply(null, arr);console.log(max, min) // 7,1

  浮点数取整数组去重

  arr2=[1,1,1,2,2,2,3,4]arr1 = Array.from(new Set(arr2)) //arr1=[1,2,3,4]

  let arr3 = []; for(var i = 0; i < arr.length; i ) {(function(i) {if(arr3.indexOf(arr[i]) == -1) { //不包含该值则返回-1arr3.push(arr[i]);}}(i)) } console.log(arr3); //如果当前数组的第i项在当前数组中第一次出现的位置不是i,那么表示第i项是重复的,忽略掉。否则存入结果数组 let arr4 = [arr[0]]; for(var i = 1; i < arr.length; i ) {(function(i) {if(arr.indexOf(arr[i]) == i) {arr4.push(arr[i]);}}(i)) } console.log(arr4);

  let arrSort = arr.sort(); let arr5 = []; for(let i = 0; i< arrSort.length; i ) {if(arrSort[i] != arrSort[i 1]) {arr5.push(arrSort[i]);} } console.log(arr5);

  for(let i = 0, len = arr6.length; i < len; i ) {for(let j = i 1; j < len; j ) {if(arr6[i] === arr6[j]) {arr6.splice(i,1);len--;j--;}} } console.log(arr6);

  用好 filter, map, every, find和其它 ES6 新增的高阶遍历函数

  const array = [3, 4, 5, 2, 3, undefined, null, 0, ""];const compact = arr => arr.filter(Boolean);compact(array);//[3, 4, 5, 2, 3]

  js判断是否为小数_js判断字符串包含小数点_js 中如何判断包含字符

  const users = [ { name: "Jim", age: 23 }, { name: "Lily", age: 17 }, { name: "Will", age: 35 }];users.every(user => user.age >= 18);//false

  const users = [ { name: "Jim", age: 23 }, { name: "Lily", age: 17 }, { name: "Will", age: 35 }];users.find(item => item.age>30);//{name: "Will", age: 35}

  JS判断点击区域

  // HTML exitContent.vue

  这是个弹窗

  // JavaScripthandleClick(e) {let facePanel = document.getElementById('facePanel')if(!facePanel.contains(e.target) && this.$refs.editContent.showFace){ this.$refs.editContent.showFace = false}},

  合理利用正则表达式解决问题 标签输入限制

  js 中如何判断包含字符_js判断是否为小数_js判断字符串包含小数点

  chun

  57) && event.keyCode!=46 || /.dd$/.test(value))event.returnValue=false">

  // 匹配邮箱let reg = /^([a-zA-Z]|[0-9])(w|-) @[a-zA-Z0-9] .([a-zA-Z]{2,4})$// (新)匹配手机号let reg = /^1[0-9]{10}$/;// (旧)匹配手机号let reg = /^13|4|5|7|8{9}$/;// 匹配8-16位数字和字母密码的正则表达式let reg = /^(?![0-9] $)(?![a-zA-Z] $)[0-9A-Za-z]{8,16}$/;// 匹配国内电话号码 0510-4305211let reg = /d{3}-d{8}|d{4}-d{7}/;// 匹配身份证号码let reg=/(^d{15}$)|(^\d{18}$)|(^d{17}(d|X|x)$)/;// 匹配腾讯QQ号let reg = /[1-9][0-9]{4,}/;// 匹配ip地址let reg = /\d \.\d \.\d \.\d /;// 匹配中文let reg = /^[\u4e00-\u9fa5]*$/;

  JS判断字符串是否全是空格

  let test = " n ";if(test.match(/^s $/)){console.log("all space or \\n")}if(test.match(/^[ ] $/)){console.log("all space")}if(test.match(/^[ ]*$/)){console.log("all space or empty")}if(test.match(/^\s*$/)){console.log("all space or \n or empty")}

  常用正则匹配JS扩大checkbox的点击区域

  function clickTd($t){$t.children("input").click();}

  function oncheckAll(event){event.stopPropagation();}

  计算时间戳间隔时间

  let date1=new Date(); //开始时间 let date2=new Date(); //结束时间 let date3=date2.getTime()-date1.getTime() //时间差的毫秒数 ------------------------------------------------------------//计算出相差天数 var days=Math.floor(date3/(2436001000)) //计算出小时数 var leave1=date3%(2436001000) //计算天数后剩余的毫秒数 var hours=Math.floor(leave1/(36001000)) //计算相差分钟数 var leave2=leave1%(36001000)//计算小时数后剩余的毫秒数 var minutes=Math.floor(leave2/(601000)) //计算相差秒数 var leave3=leave2%(601000)//计算分钟数后剩余的毫秒数 var seconds=Math.round(leave3/1000) alert(" 相差 " days "天 " hours "小时 " minutes " 分钟" seconds " 秒")

  JS提取字符串中连续的数字

  let str = "013d1we22ewfa33rr4rwq0dsf00dsf9fas999";let getNum = function (Str,isFilter) {//用来判断是否把连续的0去掉isFilter = isFilter || false;if (typeof Str === "string") {// var arr = Str.match(/(0d{2,})|([1-9]d )/g);//"/[1-9]d{1,}/g",表示匹配1到9,一位数以上的数字(不包括一位数).//"/d{2,}/g", 表示匹配至少二个数字至多无穷位数字var arr = Str.match( isFilter ? /[1-9]d{1,}/g : /d{2,}/g);console.log(arr);return arr.map(function (item) {//转换为整数,//但是提取出来的数字,如果是连续的多个0会被改为一个0,如000---->0,//或者0开头的连续非零数字,比如015,会被改为15,这是一个坑// return parseInt(item);//字符串,连续的多个0也会存在,不会被去掉return item;});} else {return [];}}console.log(getNum(str));//默认不加1,即不会把提取出来的0去掉

  JS获取项目根目录

  function getRootPath(){//获取当前网址,如: :8083/uimcardprj/share/meun.jspvar curWwwPath=window.document.location.href;//获取主机地址之后的目录,如: uimcardprj/share/meun.jspvar pathName=window.document.location.pathname;var pos=curWwwPath.indexOf(pathName);//获取主机地址,如: :8083var localhostPaht=curWwwPath.substring(0,pos);//获取带"/"的项目名,如:/uimcardprjvar projectName=pathName.substring(0,pathName.substr(1).indexOf('/') 1);return(localhostPaht projectName);}

  JS判断小数点后几位JS截取数字小数点后N位

  var original=28.453// 保留小数点后两位var result = Math.round(original100)/100; //returns 28.45// 保留小数点后一位var result = Math.round(original10)/10; //returns 28.5

  var original=28.453// 保留小数点后两位var result=original.toFixed(2); //returns 28.45// 保留小数点后一位var result=original.toFixed(1); //returns 28.5

  JS控制Input输入数字和小数点后两位

  function clearNoNum(value) {value = value.replace(/1/g, ""); //清除“数字”和“.”以外的字符value = value.replace(/.{2,}/g, "."); //只保留第一个. 清除多余的value = value.replace(".", "$#$").replace(/./g, "").replace("$#$", ".");value = value.replace(/^(-)(d ).(dd).$/, &#39;$1$2.$3'); //只能输入两个小数if (value.indexOf(".") < 0 && value != "") { //以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额value = parseFloat(value);}}

  JS校验手机号和座机号的方法

  function $isPhoneAvailable(str) {let isMob=/^[1][3,4,5,6,7,8,9][0-9]{9}$/;let isPhone = /^([0-9]{3,4}-)?[0-9]{7,8}$/;if (isPhone.test(str) || isMob.test(str)) {return true;}else {return false;}}

  JS indexOf() 不区分大小写实现JS replace() 如何针对key进行替换

  ,


  1. d.
文章由官网发布,如若转载,请注明出处:https://www.veimoz.com/1589
0 评论
360

发表评论

!