Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите с массивом (https://javascript.ru/forum/misc/18870-pomogite-s-massivom.html)

reslear 18.07.2011 23:54

Помогите с массивом
 
<script language="JavaScript" type="text/javascript">
uCatsOut = [
['29','22','0','Текстовые Редакторы','Программы для работы с текстом','ad/29','10'],
['48','22','0','Развлечение/Издевательство','издевательство','ad/48','3']
];

a = '48';
alert(uCatsOut[a]);
</script>


к примеру нужно найти число 48 в массиве и от туда же получить 3

это не предлагать
alert(uCatsOut[1][6]);

Sweet 19.07.2011 00:44

Цикл + цикл. Ну или .forEach + .indexOf

reslear 19.07.2011 01:08

а можно пример пожалуйста, а то я ещё ни разу не встречал такого)

Sweet 19.07.2011 01:21

По ссылкам есть примеры и написано доступно. Но это пока все же для общего развития. А так циклами.

trikadin 19.07.2011 01:25

Цитата:

Сообщение от Sweet
Цикл + цикл.

Перебрать массив не дано? Перебираем массив, сравниваем его элементы с нужным значением. Запоминаем индекс...

reslear 19.07.2011 14:22

trikadin,
ну пож дайте пример, я не понимаю как перебрать тут uCatsOut[тут] ???

ваый 19.07.2011 14:26

вам дали примеры в сообщении #4 этой темы, не надо лениться, надо только внимательно прочесть

melky 19.07.2011 15:35

... это же так сложно.

что вам помешало сделать это самому?

uCatsOut = [
['29','22','0','Текстовые Редакторы','Программы для работы с текстом','ad/29','10'],
['48','22','0','Развлечение/Издевательство','издевательство','ad/48','3']
];

a = '48', res=0;

(function search(arr){

for( var i = 0; i < arr.length; i += 1 ) 
             arr[i].constructor === Array ? search( arr[i] ) :  ~arr[ i ].indexOf( a ) && ( res += 1 );
            

})(uCatsOut);

alert(res);


и откуда вы 3 хотели получить ? там два 48 :D
не верите???
alert("uCatsOut = [['29','22','0','Текстовые Редакторы','Программы для работы с текстом','ad/29','10'],['48','22','0','Развлечение/Издевательство','издевательство','ad/48','3']];".match( /48/g).length);

reslear 19.07.2011 17:40

Спасибо melky но это не то, я в смысле получить индекс 6

['48','22','0','Развлечение/Издевательство','из-во','ad/48','3']
это ','3']];" нужно получить


Вы меня не поняли!
melky - написал условие поиска сколько вообще чисел в массиве .

а мне нужно найти в массиве число 48 и в этой строке 6-ой индекс то есть 3, ну или если а=29 то получим 10

Sweet 19.07.2011 18:23

Так! Ну-ка быстро писать [ кнутом "щелк-щелк" ]!!! Человеку же нужно!!!


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