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
}"
*/