Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
1 / 1 / 1
Регистрация: 15.10.2016
Сообщений: 46

Пересоздание массива

14.01.2017, 01:57. Показов 1169. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Господа, такая вот проблема. Есть массив allPics с 30 картинками. Далее внутри функции use , объявляем переменную - аналогичный массив allPics2. И уже с allPics2 рандомно берутся картинки для других двух массивов. Так вот при повторном использовании функции, внутри этой функции должен заново пересоздаваться массив allPics2 постоянно, а он получается продолжает работать с предыдущим... подозреваю, что ошибка возможно пустяковая, но к сожалению не хватает ума найти решение самому. HTML код скинул, что бы вы могли проверить работу функции по клику, если что)

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<!DOCTYPE HTML>
<html>
<head>
    <meta charset = "windows-1251">
    <link type="text/css" rel="stylesheet" href="banner.css">
    <title>Banner</title>
</head>
<body>
    <header>
        <h2>Новогодняя распродажа!
        </h2>
        <h3>
            <p>до
            </p>
            <p>80%
            </p>
            <p>скидки
            </p>
        </h3>
        
        <div class = "top">
            <div class = "logo">
            </div>
            <ul>
                <li><a href = "http://google.com">Главная</a>
                </li>
                <li><a href = "http://google.com">Товар</a>
                </li>
                <li><a href = "http://google.com">Акции</a>
                </li>
                <li><a href = "http://google.com">Кредит</a>
                </li>
                <li><a href = "http://google.com">Контакты</a>
                </li>   
            </ul>
            <form>
                <input type = "search" class = "search"><input type = "button" class = "button" onclick = "use()">
            </form>
        </div>
    </header>
    
    <article>
        <h1>Поспеши приобрести
        </h1>
        <div>
            <img src = "img/1.jpg">
            <img src = "img/2.jpg">
            <img src = "img/3.jpg">
            <img src = "img/4.jpg">
            <img src = "img/5.jpg">
            <img src = "img/6.jpg">
            <img src = "img/7.jpg">
            <img src = "img/8.jpg">
        </div>
    </article>
    <footer>
        <p>Техно эволюция © 2000–2017
        </p>
    </footer>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<script>
        //создаем масив с картинками
        var amount = 30;//количество картинок
        var allPics = [];
        for(i = 0; i < (amount); i++){
        allPics[i] = 'img/' + (i+1) + '.jpg';
        }
        
        var firstPics = ['img/1.jpg','img/3.jpg','img/5.jpg','img/7.jpg',];//число первыех четырех картинок в шахматном порядке
        var secondPics = ['img/2.jpg','img/4.jpg','img/6.jpg','img/8.jpg',];//число последних четырех картинок в шахматном порядке
        
        
        function use(){
          var allPics2 = allPics;
          //удаляем с масива allPics2 элементы масива firstPics
          for(k = 0; k < 4; k++){
            var pic = firstPics[k];
            var del = allPics2.indexOf(pic);
            allPics2.splice(del, 1);
          }
          
          //удаляем с масива allPics2 элементы масива secondPics
          for(k = 0; k < 4; k++){
            var pic = secondPics[k];
            var del = allPics2.indexOf(pic);
            allPics2.splice(del, 1);
          }
 
          //добавляем в масив firstPics элементы масива allPics2 рандомно
          for(j = 0; j < 4; j++){
            var s = Math.round((Math.random() * (amount - (10+j))) + 1);//выбираем рандомное число с масива
            firstPics[j] = allPics2[s];
            del = allPics2.indexOf(allPics2[s]);
            allPics2.splice(del, 1);
            }
        
          //добавляем в масив secondPics элементы масива allPics2 рандомно
          for(j = 0; j < 4; j++){
            var s = Math.round((Math.random() * (amount - (14+j))) + 1);//выбираем рандомное число с масива
            secondPics[j] = allPics2[s];
            del = allPics2.indexOf(allPics2[s]);
            allPics2.splice(del, 1);
            }
          
          alert(firstPics);
          alert(secondPics);
          alert(allPics2);
          } 
 
    </script>
HTML5
1
2
</body>
</html>
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.01.2017, 01:57
Ответы с готовыми решениями:

DOM пересоздание элемента
Здравствуйте!!! Подскажите пожалуйста, как можно на чистом js сделать так чтобы каждые 5 секунд, элемент пересоздавался с новыми...

Пересоздание массива
Можно ли однажды объявив массив float x=new x; объявить его заново, например так x=new; ? Может его как то обнулить надо. Ну в общем,...

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

2
30 / 28 / 14
Регистрация: 06.01.2016
Сообщений: 161
14.01.2017, 10:49
Так вот при повторном использовании функции, внутри этой функции должен заново пересоздаваться массив allPics2
В переменной allPics2 находиться не отдельный массив а ссылка на массив allPics. Используйте методы для работы с массивами.
1
1 / 1 / 1
Регистрация: 15.10.2016
Сообщений: 46
14.01.2017, 12:04  [ТС]
Огромное спасибо. Так и думал, что ошибка пустяковая, но из-за отсутствия достаточной практики не додумался сам, что нужно метод использовать, хотя и знал, что slice() копирует массив. Еще раз огромное спасибо, все работает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.01.2017, 12:04
Помогаю со студенческими работами здесь

Пересоздание динамического массива
Доброго времени суток! Есть некая проблема с динам. массивом: Есть функция , суть которой зарандомить новые значения в динамический...

Пересоздание динамического массива
Доброго времени суток. Возникла такая проблема: есть свой класс кнопки &quot;button&quot;, делаю массив этого класса: button *but; void...

Пересоздание одномерного массива в классе
Всем привет. Пишу класс, который имеет внутренний массив и позволяет добавлять, получать и удалять из него элементы. Но не понимаю как...

Многократное пересоздание динамического массива строк
Вопрос в шапке, возможно ли такое? Передо мной встала такая задача, что нужно в цикле постоянно уменьшать массив строки, пока он не будет...

Пересоздание массива в функции и дальнейшее его использование в main
Почему, когда я вызываю std::cout &lt;&lt; _list в функции, то вывод идет нормальный, а когда в main, то выводится не то, что нужно ? ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru