Tagged: javascript

0

String format (JavaScript)

String.prototype.format = function() {
    var a = arguments;
    return this.replace(/\{\d+\}/g, function(c){
        return a[c.match(/\d+/)];
    });
}
 
// usage:
var str = 'Hello, {0}! You are {1}!';
str.format('friend', 'awesome');
// Hello, friend! You are awesome!

P.S.: Вот как-то так :D

0

Bytes to Readable format (JavaScript)

function formatSize(v, c) {
    v = parseInt(v, 10);
    for(c = 0; v > 1024; c++) v = (v / 1024).toFixed(2);
    return v + ' ' + ['B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'][c]
}

P.S.: This function converts size in bytes to a human readable format.

0

Функция обнаружения коллизий объектов (JavaScript)

Дан­ная функ­ция поз­во­ля­ет опре­де­лить пере­се­че­ние (кол­ли­цию) двух объ­ек­тов (сфер / окруж­но­стей):

function $_collision(a, b) {
    var c = a.x - b.x,
        d = a.y - b.y,
        e = a.r + b.r;
    return c * c + d * d <= e * e
}
 
$_collision({
    x: 150,
    y: 200,
    r: 100
}, {
    x: 100,
    y: 150,
    r: 200
}); // true

circle collisions

0

функция расширения объекта (JavaScript)

function $_extend(o, a, y) {
    for (y in a) o[y] = a[y];
    return o
}
 
var obj1 = {a: 1, b: 2, c: 3};
var obj2 = {x: 'a', y: 'b', z: 'c'};
var new_obj = $_extend(obj1, obj2);
console.log(new_obj); // {a: 1, b: 2, c: 3, x: 'a', y: 'b', z: 'c'}
0

Faster Math.abs()

Более быст­рый ана­лог Math.abs() в JavaScript:

function abs(n) {
    return n < 0 ? -n : n
}
 
abs(-10); // 10

P.S.: При­ве­ден­ный выше метод целе­со­браз­но исполь­зо­вать в очень боль­ших цик­лах и (конеч­но же) луч­ше делать это не через вызов функ­ции abs(), а поме­стив эти вычис­ле­ния пря­ми­ком в тело цик­ла… Да Вы и сами зна­е­те :D

Хотя, более кра­си­вым (но не таким быст­рым, как -n) мето­дом всё рав­но оста­ёт­ся исполь­зо­ва­ние натив­ной функ­ции Math.abs, сле­ду­ю­щим обра­зом:

var abs = Math.abs; // создаем локальную ссылку на нативную функцию Math.abs
abs(-10); // 10

P.S.: При­ве­ден­ный выше метод целе­со­браз­но исполь­зо­вать в боль­ших цик­лах.