Официальный сайт студ.городка НГТУ
Программирование и БД » [js]экпорт инициализированного массива 

#1  08.04.11 14:34

[js]экпорт инициализированного массива

ну-ка, у вас сейчас будет шанс заработать мой респект :3
суть такова, есть приложение, с самопальным двухмерным массивом типа

Код: javascript:

function item () {  //типа мой кастомный класс, неважно какие поля
	this.id = null; 
	this.field = null; 
} 
 
var a = new Array();  // наш основной массив объектов
var item1 = new item ; // объявляем экземпляр нашего класса item
 
item1.id = 1; // заполняем значениями наш объект, неважно какими
item1.field = "field1"; 
 
a.push(item1); // добавляем наш объект в основной массив объектов.
 
//и так много раз

в итоге получается, очевидно, сгенерированный массив a объектов типа item.
вопрос: как мне сграбить этот массив целиком, например, через фаербаг, чтобы потом в другой скрипт скопипастить и объявить его, например, global static и обращаться к нему.

1. как сграбить
2. как вставить его потом и проинициализировать.

Исправлено Укроп (08.04.11 14:35)

Offline

#2  08.04.11 14:42

Re: [js]экпорт инициализированного массива

я бы сериализовал бы массив "a" с JSON, а потом бы уже ее либо распарсивать в скрипте на ПХП (или чего у тебя там) ручками, либо с подключенной JSON либой

Offline

#3  08.04.11 16:22

Re: [js]экпорт инициализированного массива

Jaguar, не ты не совсем понял. в одном скрипте просто генерится массив, потом как то я его хочу взять упакованным или еще каким и просто вставить в другой скрипт, чтобы это были статические данные уже.
JSON либы  - костыли-костылики, вот я и интересуюсь, есть ли нативные средства из одного скрипта экпортировать данные в другой, при условии что массив будет довольно большой и хотелось бы его даже как-то упаковать, например.

Offline

#4  08.04.11 16:37

Re: [js]экпорт инициализированного массива

Укроп написал(а):

в одном скрипте просто генерится массив, потом как то я его хочу взять упакованным или еще каким и просто вставить в другой скрипт, чтобы это были статические данные уже.

т.е. ты его хочешь использовать в таком же JS-скрипте?

у меня примерно такая же задача была... я сгенерировал файл array.js вида:

Код::

var page = new Object(); 
page['size'] = '23';
page['214_627'] = new Object();
page['214_627']['index'] = '1';
page['214_627']['prev']='211_626';
page['214_627']['next']='215_628';
page['211_626'] = new Object();
page['211_626']['index'] = '1';
page['211_626']['prev']='211_626';
page['211_626']['next']='215_628';
page['215_628'] = new Object();
page['215_628']['index'] = '2';
page['215_628']['prev']='211_626';
page['215_628']['next']='215_629';
page['215_629'] = new Object();
page['215_629']['index'] = '3';
page['215_629']['prev']='215_628';
page['215_629']['next']='215_630';
....

подрубил его до других js-файлов и уже внутри использовал примерно так:

Код::

function setNav(curPage) {
	if ( $("#prev").html() ){
		if(page[curPage]['prev'] != curPage) {
			$("#prev").html('<a href="main.html?'+page[curPage]['prev']+'"><< Previous</a>');
		}
	}
	if ( $("#next").html() ){
		if(page[curPage]['next'] != curPage) {
			$("#next").html('<a href="main.html?'+page[curPage]['next']+'">Next >></a>');
		}
	}
	if ( $('#curPageIndex').html() ){
		$("#curPageIndex").html(page[curPage]['index']+' of '+page['size']);
	}
	$("#print").html('<a href="print.html?'+curPage+'" target=_blank>Print</a>');
	$("#bookmark").html('<a href="javascript: setBookmark(\''+curPage+'\');">Bookmark</a>');
}

если же тебе надо использовать в скрипте на другом языке, то тут либо надо генерировать сразу массив на том языке, либо приводить к какому-то стандарту... один из таких стандартов - это JSON

Offline

#5  08.04.11 17:35

Re: [js]экпорт инициализированного массива

1. alert(JSON.stringify(a));
ну или просто в консоли пишешь JSON.stringify(a)
2. Копируешь результат
3. вставляешь куда хочешь
var b = [{"id":1,"field":"field1"}]; // вот тебе массив из объектов
4. alert((a[0].id === b[0].id)) // true
5. ???????
6. PROFIT

Но «класс», ессесно, туда уже не переходит

Offline

#6  08.04.11 22:33

sav
Профиль

Re: [js]экпорт инициализированного массива

генеренный массив сериализуешь в строку:
var str = JSON.stringify(yourArray);
выведи результат промптом:
window.prompt("my array:", str);
копипастишь его, вставляешь как строку в любой другой скрипт, парсишь:
var str = "то, что скопировал из prompt"
var myArrayInANotherScript = JSON.parse(str);

JSON - во всех современных браузерах поддержживается, если нет, в jQuery - как отдельный плагин используется

Offline

#7  09.04.11 08:03

Re: [js]экпорт инициализированного массива

Jaguar, Угрюмый кебаб, sav, уууууииии  спасибо!!1

Offline

#8  09.04.11 15:35

Re: [js]экпорт инициализированного массива

Это что ли тред json для новорожденных?

Offline

Программирование и БД » [js]экпорт инициализированного массива 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.207 сек.
Выполнено 11 запросов.