Skip to content

niefz/regex

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 

Repository files navigation

JavaScript 编程黑科技

装逼用代码骂别人

  • (!(+[])+{})[--[+""][+[]][+[]] + ~~!+[]]+({}+[])[[!+[]]~+[]]

用代码优雅的证明自己

  • ([][[]]+[])[+!![]]+([]+{})[!+[]+!![]]

优雅的实现金钱格式化

  • var price = '1234567890';
  • var format = price.replace(/\B(?=(\d{3})+(?!\d))/g, ',');

最佳的让两个整数交换数值

  • var a = 1, b = 2;
  • a ^= b;
  • b ^= a;
  • a ^= b;

函数节流

  • function throttle(method, context) {
  • if (!method.tId) { 
    
  •     method.call(context); 
    
  •     method.tId = 1; 
    
  •     setTimeout(() => method.tId = 0, 100); 
    
  • } 
    
  • }

不用 Number、parseInt 和 parseFloat 方法把字符串转换成数字

  • var a = 1;

装逼的 "hello world!"

最短的代码实现数组去重

  • ①ES6实现
  • function unique(arr){
  • return [...new Set(arr)];
  • }
  • ②ES5实现
  • function unique(arr) {
  • return arr.filter(function(ele, index, array) {
    
  •     return array.indexOf(ele) === index
    
  • })
    
  • }
  • ③ES3实现
  • function unique(arr) {
  • var obj = {},
    
  •     array = []
    
  • for (var i = 0, len = arr.length; i < len; i++) {
    
  •     var key = arr[i] + typeof arr[i]
    
  •     if (!obj[key]) {
    
  •         obj[key] = true
    
  •         array.push(arr[i])
    
  •     }
    
  • }
    
  • return array
    
  • }
  • ③正则实现
  • function unique(arr) {
  • return arr.sort().join(",,").
    
  • replace(/(,|^)([^,]+)(,,\2)+(,|$)/g, "$1$2$4").
    
  • replace(/,,+/g, ",").
    
  • replace(/,$/, "").
    
  • split(",")
    
  • }

最短的代码实现一个长度为 m(6) 且值都 n(8) 的数组

  • Array(6).fill(8);

取出一个数组中的最大值和最小值

  • var numbers = [5, 458 , 120 , -215 , 228 , 400 , 122205, -85411];
  • var maxInNumbers = Math.max.apply(Math, numbers);
  • var minInNumbers = Math.min.apply(Math, numbers);

将 argruments 对象转换成数组

  • var argArray = Array.prototype.slice.call(arguments);
  • 或者ES6:
  • var argArray = Array.from(arguments)

从一个数组中找到一个数,O(n)的算法,找不到就返回 null

  • // 正常的版本
  • function find (x, y) {
  • for ( let i = 0; i < x.length; i++ ) {
    
  •     if ( x[i] == y ) return i;
    
  • }
    
  • return null;
    
  • }
  • // 函数式的版本
  • const find = ( f => f(f) ) ( f =>
  • (next => (x, y, i = 0) =>
  • ( i >= x.length) ?  null :
    
  •     ( x[i] == y ) ? i :
    
  •     next(x, y, i+1))((...args) =>
    
  •         (f(f))(...args)))
    

去掉字符串左右两边的空格

  • function trim(str) {
  • return str.replace(/(^\s*)|(\s*$)/g, "")
    
  • }

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published