CyberMaster, если бы ты показывал, что получается по ходу дела, получал бы возможно полезную критику.
|
Продемонстрирую я свое творение только через месяц, когда буду встраивать QSA Selector Engine. Сейчас оттестировал проект на IE6, Opera, FireFox, Chrome... Теперь работаю над Seleneon Engine.
|
Скоро выложу. Буду рад выслушать пожелания, критику и комментарии!!!
|
Народ, срочно нужна ваша помощь!!! Мне нужна функция для копирования объектов. Простой оператор = не копирует, а возвращает ссылку на нужный объект, For Example
var Data = {
a: 1,
b: 22,
c: 657
};
var Data2 = Data; // Создает ссылку на Data!
А мне нужно, чтобы в памяти создавался объект точно копирующий Data. |
var a = { a:"b" }, b;
b = clone(a);
function clone(o) {
if(!o || "object" !== typeof o) {
return o;
}
varc = "function" === typeof o.pop ? [] : {};
var p, v;
for(p in o) {
if(o.hasOwnProperty(p)) {
v = o[p];
if(v && "object" === typeof v) {
c[p] = clone(v);
}
else c[p] = v;
}
}
return c;
}
PS взят из интернета. |
научи. (пример кода)
|
Предложенная функция имеет недостатки. Например, попробуй клонировать хотя-бы window.navigator on webkit engine! Maximum call stack size!
|
CyberMaster,
Если в объекте рекурсивные ссылки - ясно дело, метод унесет в бесконечную рекурсия при копировании |
А на счет JSON интересно! Maxmaximus, покажи!!
|
Еще есть предложения??????????
|
Цитата:
var object = {};
var copy = JSON.parse(JSON.stringify(object))
:DНо если будут рекурсивные ссылки, то все равно не прокатит, JSON бросит специально исключение. И как бэ JSON и JavaScript-объект - это разные вещи. Так что Maximus сказал бред |
Кто может предложить функцию shuffle для перемешки массивов?
|
CyberMaster,
А поиск? не ?
Array.prototype.shuffle = function( b ){
var i = this.length, j, t;
while( i ){
j = Math.floor( ( i-- ) * Math.random() );
t = b && typeof this[i].shuffle!=='undefined' ? this[i].shuffle() : this[i];
this[i] = this[j];
this[j] = t;
}
return this;
};
Array.prototype.shuffle = function () {
this.sort(function () {
return 0.5 - Math.random()
});
return this
};
|
|
| Часовой пояс GMT +3, время: 04:15. |