Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Проверка всех элементов массива через if (http://www.flasher.ru/forum/showthread.php?t=206718)

Кот Баюн 24.02.2014 17:54

Проверка всех элементов массива через if
 
Всем доброго дня!
У меня есть массив, в нем некое количество элементов, допустим 26.
Предположим, что массив - это буквы алфавита - a,b,c,d......


var mas:Array =Array();
mas[0] = "a";
mas[1] = "b";
mas[2] = "c";
mas[3] = "d";
mas[4] = "e";
mas[5] = "f";
mas[6] = "g";
.............
и так далее до

mas[26] = "z";


Мне нужно сделать, чтобы условие if проверяло, а не содержится ли вдруг где-нибудь в массиве строка "ы", которой там быть не положено?

Я могу это сделать с одиночным кусочком массива

Код AS1/AS2:

        if (mas[2] != "ы") {
                trace("не положено");
        }

А как применить такое условие ко всем элементам массива?

alexcon314 24.02.2014 18:31

Код AS1/AS2:

foreach(var p in mas)
{if (mas[p] != "ы") {
                trace("не положено");
        }
}

как-то так.

Кот Баюн 24.02.2014 18:36

Получаем
Цитата:

**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 1: Unexpected 'var' encountered
foreach(var p in mas)

**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 2: ')' or ',' expected
{if (mas[p] != "ы") {

**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 6: Unexpected '}' encountered
}


alexcon314 24.02.2014 18:55

Код AS1/AS2:

for (var p in mas) {
    if (mas[p] != "ы") {
        trace("не положено");
    }
}

а так?

Кот Баюн 24.02.2014 19:11

С таким условием трейсит "не положено" при любом раскладе.
даже к примеру, если в массиве есть ы, или если ы заменить на имеющуюся строку.
Код AS1/AS2:

onClipEvent (load) {
        var mas:Array =Array();
        mas[0] = "a";
        mas[1] = "b";
        mas[2] = "c";
        mas[3] = "d";
        mas[4] = "e";
        mas[5] = "f";
        mas[6] = "g";
        mas[7] = "h";
}
onClipEvent (enterFrame) {
        for (var p in mas) {
                if (mas[p] != "ы") {
                        trace("не положено");
                }
        }
}

код привязан к клипу.

alexcon314 24.02.2014 19:13

Код AS1/AS2:

for (var p in mas) {
                if (mas[p] == "ы") {
                        trace("не положено");
                }
        }


Кот Баюн 24.02.2014 19:19

А какое местонахождение этой переменной?
_root.имяклипа.mas ?

alexcon314 24.02.2014 19:23

Цитата:

А какое местонахождение этой переменной?
_root.имяклипа.mas ?
Я ванговать разучился. Почитайте на всякий что-нибудь про область видимости переменных применительно к флешу. Где и как их правильно объявлять. Как минимум, писать код нужно в кадрах, а не на клипах.

Кот Баюн 24.02.2014 19:30

Ситуация вынуждает писать код в клипе. ))))
Реально ли прикрутить к этой приблуде, чтобы пользователь мог сам вбивать значение строки, т.е. не только строго "ы", а любую другую букву? ))


Часовой пояс GMT +4, время: 07:40.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.