Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
403 / 19 / 5
Регистрация: 17.01.2017
Сообщений: 572

Как сделать сдвиг первых элементов многомерного массива?

11.10.2019, 01:06. Показов 2594. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пытаюсь сделать сдвиг первых элементов многомерного массива, вот мой массив [[1,1,1],[2,2,2],[3,3,3]]. При щелчке мыши должны первые элементы массива сдвинуться вот так [[2,1,1],[3,2,2],[1,3,3]], если ещё раз щёлкнуть [[3,1,1],[1,2,2],[2,3,3]] и т.д. т.е. каждый раз при щелчке мышкой должен происходить сдвиг элементов массива. В итоге при щелчке у меня происходит так, что первые элементы первого и последнего массива становятся одинаковыми [[2,1,1],[3,2,2],[2,3,3]]. Как это правильно сделать?
Вот код:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var arr = [[1,1,1],[2,2,2],[3,3,3]];
 
var box2 = [[1,1,1],[2,2,2],[3,3,3]];
var tmp = [[1,1,1],[2,2,2],[3,3,3]];
function main()
{
  
  document.onmousedown = myDown;
}
function myDown(e){
  alert(arr);
  rotateface(arr);
}
function rotateface(cube)
{
            var tmp = box;
            tmp[0][0]=box[1][0];
            tmp[1][0]=box[2][0];
            tmp[2][0]=box[0][0];
            box2 = tmp;
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.10.2019, 01:06
Ответы с готовыми решениями:

Как сделать Insert многомерного массива в бд
Например есть массив: $output=array("a"=>1,"b"=>2,"c"=>3); Здесь можно в цикле делать insert каждого массива на каждой итерации...

Как получить ключи всех элементов определённого уровня ассоциативного многомерного массива?
Например, массив: Array( город1 => Array( склад1 => Array( яблоки => 45; бананы => 23; ) склад2 => Array( ...

Как сделать сдвиг массива string [,] ?
Привет ! Подскажите пожалуйста как сделать сдвиг массива string ? Вот например массив. "0", "1", "0",...

5
566 / 465 / 183
Регистрация: 14.10.2017
Сообщений: 1,259
11.10.2019, 02:11
HTML5
1
<button type="" id="btn">press</button>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
let btn = document.getElementById('btn');
let arr = [[1,1,1],[2,2,2],[3,3,3]];
console.log(arr);
let shiftEl = arr => {
    let tmp = arr[0][0];
    for(let i = 0; i < arr.length; i++){
        if(i == arr.length - 1)
            arr[i][0] = tmp;
        else
            arr[i][0] = arr[i + 1][0];
    }
    console.log(arr);
}
btn.addEventListener('click', () => shiftEl(arr));
0
1786 / 1036 / 445
Регистрация: 12.05.2016
Сообщений: 2,550
11.10.2019, 05:44
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
let arr = [[1, 1, 1], [2, 2, 2], [3, 3, 3]];
 
function shift(arr) {
  for (let i = 1; i < arr.length; i++) {
    let tmp = arr[i - 1][0];
    arr[i - 1][0] = arr[i][0];
    arr[i][0] = tmp;
  }
  return arr;
}
console.log(shift(arr));
console.log(shift(arr));
console.log(shift(arr));
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
11.10.2019, 12:35
Лучший ответ Сообщение было отмечено Katerina1993 как решение

Решение

PHP/HTML
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
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
</head>
 
<body>
    <script>
        var arr = [[1, 1, 1], [2, 2, 2], [3, 3, 3]];
 
        function rotateface(cube) {
            var buf = cube[0][0],
                maxindex = cube.length - 1;
            for (var i = 0; i < maxindex; i++)
                cube[i][0] = cube[i + 1][0];
            cube[maxindex][0] = buf;
        }
 
        document.onmousedown = myDown;
 
        function myDown(e) {
            alert(arr);
            rotateface(arr);
        }
    </script>
</body>
</html>
1
403 / 19 / 5
Регистрация: 17.01.2017
Сообщений: 572
12.10.2019, 15:42  [ТС]
Работает, спасибо за помощь, самый лучший вариант, это последний. Просто я не знаю что такое let.
0
1786 / 1036 / 445
Регистрация: 12.05.2016
Сообщений: 2,550
12.10.2019, 15:56
Цитата Сообщение от Katerina1993 Посмотреть сообщение
Просто я не знаю что такое let.
Это как var, только круче, модней, молодежней
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.10.2019, 15:56
Помогаю со студенческими работами здесь

Как сделать циклический сдвиг массива?
Как сделать циклический сдвиг массива вправо на 4 элемента?

Как сделать циклический сдвиг двумерного массива влево?
int array = {{1,2,3,4,5,6,7,8,9,10},{1,2,3,4,5,6,7,8,9,10}};

Cоздание многомерного массива - из 3х3 массива сделать 4х3
Создать многомерный массив 4x3 элементов. По данному примеру. Пример. Код C#include &lt;stdio.h&gt; main() { Int mas; /*...

Подскажите, как сделать сдвиг массива вправо для вставки нового элемента?
// После каждого четного числа добавить число 0. const int n=10; int ar,k=n,t; for(int i=0;i&lt;n;i++){ ar=rand()%10+1; ...

Можно ли сделать строковый ввод для многомерного массива?
Можно ли сделать строковый ввод для многомерного массива, если да то как?


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
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 Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru