Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.74/47: Рейтинг темы: голосов - 47, средняя оценка - 4.74
18 / 0 / 3
Регистрация: 29.01.2014
Сообщений: 180

Получить определенное количество элементов массива

31.08.2015, 20:13. Показов 8874. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть массив ar он добывается с помощью ajax (запуск ajax происходит при клике по button)

Сперва получить массив в функции page() затем вывести первые 20 элементов (в console.log())
И потом по событию onclick получить следующие 20 элементов массива, при еще одном событии onclick вывести уже следующие 20 элементов и так до конца.

JavaScript
1
2
3
4
5
6
7
8
function go(ar, num){ //обработчик onclick
var res;
for(i = num; i<=num+19; i++) res = res + ar[i];
alert(res);
return i;
}
var num = 0; // глобальный счетчик
num = go(ar, num);
вызов события: onclick="num = go(ar, num);


Но сталкиваюсь с проблемой либо функция не ждет выполнения аякса, либо массив не передается. Не понимаю в чем проблема.

P.S массив достаем ajax с ним все в порядке.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.08.2015, 20:13
Ответы с готовыми решениями:

Получить заданное количество случайных элементов массива
Привет! Нужно чтобы из столбца &quot;Список&quot; выводилось Х количество случайно выбранных слов. Для этого есть строка с кол-во. Сейчас выводит...

Найти количество элементов массива, содержащих определенное значение
Добрый день! Короткий пример Имеется 3 элемента массива, содержащие а(0)=&quot;23,22,25,24,26,22,24&quot; а(1)=22 ...

Получить количество отрицательных элементов и количество нулевых элементов массива
Дан массив А из n действительных чисел: a1, …, an. Вычислить: a12, a1a2, a1a3, …, a1an; Получить количество отрицательных элементов...

6
Модератор
 Аватар для Thisman
771 / 352 / 142
Регистрация: 17.07.2013
Сообщений: 992
31.08.2015, 20:33
сновидящий, ну, например, вот так вот

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
var button; // ссылка на вашу кнопку
button.sliceIndex = 0; // индекс смещения у массива
 
button.onclick = function () {
$.ajax({
    /* тут ваши настройки*/
    success : function () {
        var array; // ваш массив
        var sliceArray = array.slice(button.sliceIndex * 20, 20); // получаем 20 элементов, исходя из индекса
        button.sliceIndex++; // увеличиваем индекс для след раза
    }
});
}
0
18 / 0 / 3
Регистрация: 29.01.2014
Сообщений: 180
31.08.2015, 20:50  [ТС]
Дело в том что с помощью аякса мы можем подключиться к серверу только один раз, и при этом вытащить 100 элементов.

Добавлено через 45 секунд
Нужно как-то работать с уже полученным массивом
0
Модератор
 Аватар для Thisman
771 / 352 / 142
Регистрация: 17.07.2013
Сообщений: 992
31.08.2015, 20:58
сновидящий, ну почти ничего не изменилось


JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// здесь наш заброс к серверу и получение данных, главное что в функции success должен быть такой код
 
/*.....*/
 
loadData; // наш загружаемый массив, переменная глобальная
button.onclick = getSliceData(); // теперь по клику выполняется другая функция
 
/*.... */
function getSliceData () {
/* а тут тоже самое что и было */
var array = loadData.slice(button.sliceIndex * 20, button.sliceIndex * 20 + 20);
button.sliceIndex++;
return console.log(array);
}
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
31.08.2015, 21:00
сновидящий, ну тогда всё намного легче
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
var arr=[], // заготовка массива
    offset=0 // смещение
$(button).click(function () {
    var resultArr=arr.slice(offset++*20,20); // массив из 20 элементов
})
// получение массива
 
$.ajax({
    /* тут ваши настройки*/
    success : function (a) {
        var arr=a; // ваш массив
    }
})
Добавлено через 42 секунды

Не по теме:

как всегда не успел))

0
не Администратор ^_^
 Аватар для Unick
988 / 223 / 23
Регистрация: 03.05.2009
Сообщений: 1,493
Записей в блоге: 1
01.09.2015, 00:02
Лучший ответ Сообщение было отмечено сновидящий как решение

Решение

Цитата Сообщение от BANO Посмотреть сообщение
JavaScript
1
var resultArr=arr.slice(offset++*20,20); // массив из 20 элементов
JavaScript
1
2
3
4
var resultArr=arr.slice(offset*20, offset++*20 + 20); // массив из 20 элементов
// или
var asdf = offset++ * 20;
var resultArr=arr.slice(asdf, asdf + 20);
Добавлено через 1 минуту
Thisman, ну у тебя тоже
очепятки заразительны

Добавлено через 15 минут
я тоже хочу для разнообразия:

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var arr=[1,2,3,4,5,6,7,8]; // массив из аякса
 
function getElementsInArray(arr){
    var STEP = 3; // мол шаг
    var _offset = 0; // смещение
    result = function(){
        var offset = _offset++ * STEP;
        return arr.slice(offset, offset + STEP);
    };
    //
    //result.toString = result();
    return result;
}
 
var a = new getElementsInArray(arr);
 
// ответ
console.log(a());
console.log(a());
console.log(a());
1
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
01.09.2015, 00:05
вот я придуро забыл что это не splice
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.09.2015, 00:05
Помогаю со студенческими работами здесь

Получить количество отрицательных элементов массива и произведение элементов, принадлежащих отрезку
Дан массив действительных чисел а1,…, аn. Получить количество отрицательных элементов массива и произведение элементов, принадлежащих...

Получить количество отрицательных элементов массива и произведение элементов, принадлежащих отрезку [с,б]
Паскаль АВС. дан массив действительных чисел а1........Ан. Получить количество отрицательных элементов массива и произведение элементов,...

Как получить из строки определённое количество символов?
Помогите, пожалуйста, вытащить c помощью регулярных выражений из строки такого вида string data =...

Запуск bat-файла определенное количество раз и определенное количество дней
1 есть .bat файл, который запускает некий скрипт. Требуется настроить его так, что бы запуск происходил определенное количество дней. Как...

Как получить количество элементов массива GET
Доброго времени суток. В адресной строке: ?a1=1&amp;b1=11&amp;a2=2&amp;a3=3&amp;b3=33и так далее (общее количество варьируется). Элементы a...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru