1、千分位分隔符

const toDecimalMark = num => num.toLocaleString("en-US");
console.log(toDecimalMark(12305030388.9087))

2、时间戳转时间

const setTime = tiemStamp => new Date(parseInt(timeStamp) * 1000).toLocaleString().replace(/[/]/g,'-');
console.log(setTime(1535932800))

3、时间转时间戳

const timeStamp = time => new Date(time).getTime();
console.log(timeStamp('2019-03-19 11:55:00'))

4、去除空格

const removeSpace = str => str.replace(/\s+/g,'')
let str = '1 2 3 4'
console.log(removeSpace(str))

5、检测类型

const typeOf = str=> Object.prototype.toString.call(str) == '[object String]'
let str = '3123'
console.log(typeOf(str))

6、数字简化为“万”

function unitConvert(num){
let moneyUnits = ['元','万元','亿元','万亿'];
let dividend = 10000;
let curentNum = num; //转换数字
let curentUnit = moneyUnits[0]; //转换单位
let len = moneyUnits.length;
for(var i = 0; i < len; i++) {
curentUnit = moneyUnits[i];
if(strNumSize(curentNum) < 5) {
break;
}
curentNum = curentNum / dividend;
}
let m = {num: 0,unit: ""}
m.num = curentNum.toFixed(2);
m.unit = curentUnit;
return m;
}
function strNumSize(tempNum) {
var stringNum = tempNum.toString();
var index = stringNum.indexOf(".");
var newNum = stringNum;
if(index != -1) {
newNum = stringNum.substring(0, index);
}
return newNum.length;
}
unitConvert(1000000)

7、数组去重

(1)
let arrList = [1,2,3,1,3,33,6,2];
const removeRepeat = arr => [...new Set(arr)]
console.log(removeArr(arrList))
(2)
let arrList = [1,2,3,1,3,33,6,2];
let newArr = [];
let len = arrList.length
for(let i=0;i<len;i++){
newArr.indexOf(arrList[i])==-1 ? newArr.push(arrList[i]):''
}
console.log(newArr)

8、出现最多次数的字符串,出现多少次

let str = "qwertyuiopqqqasdf"
function maxstringload(str){
let obj = {}
let len = str.length
for(let i=0;i<str.len;i++){
let key = str[i]
if(obj[key]){
obj[key]++
}else{
obj[key] = 1
}
}
let maxCount =0;
let maxString = "";
for(let key in obj){
if(maxCount<obj[key]){
maxCount = boj[key];
maxString = key;
}
}
return "出现次数最多的字母:" + maxString + "出现了" + maxCount + "次";
}
console.log(maxstringload(str))

9、数组排序

(1)
let arr = [17,2,47,3,5,9,3,4,11,4,24]
const sortArr = arr => arr.sort((prve,next) => prve-next);
console.log(arr) (2)
function bubbleSort(arr) {
let len = arr.length;
for(let i = 0; i < len; i++) {
for(let j = 0; j < len - 1 - i; j++) {
if(arr[j] > arr[j + 1]) { //相邻元素两两对比,如果前一个数比后一个大,就交换位置
let temp = arr[j + 1]; //元素交换
arr[j + 1] = arr[j];
arr[j] = temp;
}
}
}
return arr;
}
let arr = [3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48];
console.log(bubbleSort(arr));

10、深拷贝

(1)
const clone = obj => obj.JSON.parse(JSON.stringify(obj));
const clone = obj => obj.JSON.stringify(JSON.parse(obj))

(2)
const perfectClone = obj => {
if(obj == null){
return 'unKonwn';
}
if(typeof obj !== 'object'){
return obj
}
if(obj.constructor === Date){
return new Date(obj)
}
const newObj = new obj.constructor();
for(let key in obj){
if(obj.hasOwnProperty(key)){
const val = obj[key]
newObj[key] = typeof val === 'object' ? argument.call(val) : val;
}
}
return newObj
}

11、浅拷贝

const shallowClone = obj => Object.assign({},obj)

12、随机数

Math.random();//随机生成0到1的数字

Math.floor(Math.random() * 可能只的总数 + 第一个可能的值)

eg:Math.floor(Math.random() * 9 + 2); // 生成2到10的值,包括2和10
即:
Math.floor(Math.random()*(最大值 - 最小值 +1) + 最小值);//随机生成[n,m]的随机整数

  

13、数组扁平化

function flat(arr){
let newArr = [];
let len = arr.length
for(let i=0;i<len;i++){
if (Array.isArray(arr[i])) {
newArr = newArr.concat(flat(arr[i]));
}else{
newArr.push(arr[i])
}
   }
return newArr
}
let arr = [1,2,[3,4,[5,6],7],8,9];
console.log(flat(arr))

待续。。。

js小仓库的更多相关文章

  1. js小功能整理

    /** * 判断是否包含字符串某字符串 * @param {[type]} str [被检测的字符串] * @param {[type]} substr [检测是否含有的字符串] * @return ...

  2. [转载]Js小技巧||给input type=“password”的输入框赋默认值

    http://www.cnblogs.com/Raywang80s/archive/2012/12/06/2804459.html [转载]Js小技巧||给input type="passw ...

  3. 一些js小题(一)

    一些js小题,掌握这些对于一些常见的面试.笔试题应该很有帮助: var a=10; function aa(){ alert(a); } function bb(){ aa(); } bb();//1 ...

  4. 第24篇 js小知识和“坑”

    前面说了说了js的相关知识,基本上除了语法外,把项目常用的知识做了一个梳理,现在说下js的其它方面的知识,这些知识不成体系,属于不理解对于一般开发没什么太多影响,但如果理解清楚,可以更好去开发. js ...

  5. React.js 小书介绍

    React.js 小书 Github 关于作者 这是一本关于 React.js 的小书. 因为工作中一直在使用 React.js,也一直以来想总结一下自己关于 React.js 的一些知识.经验.于是 ...

  6. 一个js小游戏----总结

    花了大概一天左右的功夫实现了一个js小游戏的基本功能,类似于“雷电”那样的小游戏,实现了随即怪物发生器,碰撞检测,运动等等都实现了,下一个功能是子弹轨迹,还有其他一些扩展功能,没有用库,也没有用web ...

  7. React.js小书总结

    (迁移自旧博客2017 08 27) 第一阶段 react的组件相当于MVC里面的View. react.js 将帮助我们将界面分成了各个独立的小块,每一个块就是组件,这些组件之间可以组合.嵌套,就成 ...

  8. js小技巧总结

    js小技巧总结 1.Array.includes条件判断 function test(fruit) { const redFruits = ["apple", "stra ...

  9. JS小积累(二)— 自动获取浏览器尺寸

    JS小积累-获取浏览器窗口尺寸 作者: 狐狸家的鱼 GitHub:八至 autodivheight(); function autodivheight() { //函数:获取尺寸 //获取浏览器窗口高 ...

随机推荐

  1. 删除 Ceph 的image报rbd: error: image still has watchers

    在Ceph集群日常运维中,管理员可能会遇到有的image删除不了的情况,有一种情况是由于image下有快照信息,只需要先将快照信息清除,然后再删除该image即可,还有一种情况是因为该image仍旧被 ...

  2. 从jvm运行机制来分析 String对象负值

    测试1: 代码 public class Test { public static void main(String[] args) { String s1="aaa"; f(s1 ...

  3. ASP.NET MVC WebApi接口授权验证

    对于很任何多开发者来说,不管是使用任何一种框架,或者是使用任何一种语言,都要使用面向接口编程.使用面向接口编程的时候,那么就会有很多的权限验证,用户验证等等. 特别是对于一些系统来说,别人想要对接你的 ...

  4. winform 中TextBox只能输入数字

    textBox1.KeyPress+=TextNumber_KeyPress; private void TextNumber_KeyPress(object sender, KeyPressEven ...

  5. C# 加密(Encrypt) 解密(Decrypt) 操作类 java与 C# 可以相互加密解密

    public sealed class EncryptUtils { #region Base64加密解密 /// <summary> /// Base64加密 /// </summ ...

  6. 深入理解java虚拟机(七)类加载的时机

    Class 文件中描述的各种信息都必须加载到虚拟机中才能运行和使用.而虚拟机怎么加载这些Class 文件呢?Class 文件进入到虚拟机中会发生什么变化呢? 虚拟机类加载机制是指 虚拟机把描述类的数据 ...

  7. java学习(二)运算符

    一.运算符 赋值运算符:=  +=  -=  *=  /=  %= 算术运算符:+ - *  /  %   ++   -- int x = 3;  int y = 4   int c = x*1.0 ...

  8. 【C#】泛型

    泛型是一个非常有用的技术,在博客园里面有太多说到泛型的好文章,这里我推荐一篇我个人觉得非常全面,也非常齐全的文章. (重造轮子很傻!!!) C# -- 泛型(1) C# -- 泛型(2) C# -- ...

  9. OO 抽象方法与虚方法的区别

     抽象方法与虚方法的区别 抽象方法与虚方法的区别: 一.抽象方法: 1.只能在抽象类中定义: 2.不能有方法的实现:(方法体)[因为抽象类无法实例化,所以抽象方法没有办法被调用,也就是说抽象方法永远不 ...

  10. 配合前端开发,调试前端页面bug

    同事开发的H5页面  在iOS10.1的手机上会有bug 先下载ios10.1的模拟器,安装到xcode上,注意给电脑腾出足够的空间 https://stackoverflow.com/questio ...