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:14. |