Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Поиск необходимого текста через id (https://javascript.ru/forum/misc/29182-poisk-neobkhodimogo-teksta-cherez-id.html)

Dorian_bs 18.06.2012 20:47

Поиск необходимого текста через id
 
Всем привет!
При написании скрипта столкнулся с проблемой.
Суть заключается в следующем.

Есть код (пример):
[ID|text1|text2|text3|text4][ID|text1|text2|text3|text4]

Описание:
ID - уникальный номер для каждого набора элементов.
text1, text2, te... - любой уже существующий текст.

Необходимо, осуществить проверку на существование такого "id" (номера).
Если существует - записать в массив элементы данного ID.

Пожалуйста, помогите реализовать или же подскажите как можно сделать.

devote 18.06.2012 21:19

var obj = {
    "20": ["text1", "text2", "text3"],
    "50": ["text1", "text2", "text3"]
}

if ( obj[20] ) {
    alert( "is exists: " + obj[20].join("\n") );
    // obj[20] - и есть массив значений по этому ID
}

if ( obj[25] ) {
    alert( "is exists" );
}

Deff 18.06.2012 21:48

devote,
:-? Хм - а я интерпретировал этот вопрос так:
Цитата:

Сообщение от Dorian_bs
Есть код (пример):
[ID|text1|text2|text3|text4][ID|text1|text2|text3|text4]



<div id="ID2"></div>
<script type="text/javascript">
var Idarr='[ID1|text1|text2|text3|text4][ID2|text1|text2|text3|text4]'
Idarr=Idarr.split(/^\[|\]\[|\]$/g);
var ll=Idarr.length;Idarr.splice(ll-1,1);Idarr.splice(0,1);

for(i in Idarr) {
  Idarr[i]=Idarr[i].split("|");
  if(document.getElementById(Idarr[i][0])!=null){
    alert('Нашли')
     //Тут чо то делаем - я не понял
  }
}
alert('End')
</script>

Dorian_bs 18.06.2012 21:49

спасибо! Но как реализовать создание самого этого массива. То есть код изначально находится в переменной.
var a = '[ID|text1|text2|text3|text4][ID|text1|text2|text3|text4]';

Dorian_bs 18.06.2012 21:51

большое спасибо Вам!
Deff, то, что нужно!)

Dorian_bs 18.06.2012 21:56

deff, как только оно находит такой id - записывает значение в массив текст1, текст2...

Deff 18.06.2012 22:21

Цитата:

Сообщение от Dorian_bs
записывает значение в массив текст1, текст2...

В Новый массив ? или ?
И как он привязан к элементу ?

Dorian_bs 18.06.2012 22:38

то есть мы создаем новый массив, в который записываем 4 элемента.
1 - 'text1',
2 - 'text2',
3 - 'text3',
4 - 'text4'

devote 18.06.2012 22:45

var s = '[ID1|text1|text2|text3|text4][ID2|text1|text2|text3|text4]';

var blocks = s.replace(/^\[|\]$/g, "").split("]["),
    block, result = {};

for( var i = 0, length = blocks.length; i < length; i++ ) {
    result[ (block = blocks[ i ].split("|")).shift() ] = block;
}

alert( JSON.stringify( result ) );  // {"ID1":["text1","text2","text3","text4"],"ID2":["text1","text2","text3","text4"]}

Dorian_bs 18.06.2012 22:57

большое спасибо))) в точку)))


Часовой пояс GMT +3, время: 08:53.