Полезные JavaScript сниппеты

5 декабря, 2014
1 минута чтения

Если контент не отображается, включите VPN.

javascript logo unofficial
JS сниппеты

Побитовое приведение в целочисленный тип

1234.56 | 0
// 1234

Найти максимальный элемент в массиве

var data = [1,2,3,4,5];
Math.max.apply(null, data);
// 5

Использовать оператор «~» вместе с функцией indexOf

myString = "my simple string"
if(~myString.indexOf("simple")) {
  console.log('found!');
}
// found!

Быстрое преобразование в целое 32 битное число

123.456 >>> 0
// 123

Важно использовать только положительные значения. Если указать отрицательные числа — результат может удивить тех, кто не читает доки

-123.456 >>> 0
// 4294967173

Псевдо-случайный GUID

guid = function() {
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
    var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);
    return v.toString(16);
  }).toUpperCase();
};

// Пример:
guid()
// "5D8B561A-4794-40D1-A792-46CB67C9BC10"

Loop thread

!function loop() {
  requestAnimationFrame(loop);
  //code...
}();

Паттерн синглтон

var Game = new function() {
  var self = this;
  self.start = function() {
    alert('new Game!');
  }
  return function() { return self; };
}

// Пример:
new Game === new Game
// true

Преобразовать строку из одиночных значений в парные массивы

toPair = function(str) {
  var resArray = str.split(/,./gi), arr = [], j;
  for(j = 0; j < resArray.length; j+=2) {
    if(!(j % 2)) {
      arr.push('' + [resArray[j] + ',' + resArray[j + 1]])
    }
  }
  return arr;
}

// Пример:
toPair("2, 4, 8, 16, 32, 64, 128, 256")
// ["2,4", "8,16", "32,64", "128,256"]

Сделать JSON легко читаемым

obj = {"x":1,"y":2,"z":3}
JSON.stringify(obj, null, 2);
/* "{
"x": 1,
"y": 2,
"z": 3
}"
*/

Денис Сергеевич Басковский

Философ, изобретатель и поэт.

Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
crop html5
Предыдущая статья

Пример обрезки изображения на чистом JavaScript

private diary converter
Следующая статья

Private Diary Convertor