powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / Серверный JavaScript (Node.js, Ringo, Nitro, Sling) [игнор отключен] [закрыт для гостей] / Работа с массивом
6 сообщений из 6, страница 1 из 1
Работа с массивом
    #39984168
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
var lockers = Array(number_locker).fill(Array(number_shelves).fill(0));

const conn = mysql.createConnection({
   .....................
});

var sql = 'SELECT `locker_id`, `shelve_id` FROM `shelves`';
conn.query(sql, function(err, result) {
    if (err) throw err;

    result.forEach(function(item, i, arr) {
        lockers[item.locker_id][item.shelve_id] = 1;
        console.log(item.locker_id, item.shelve_id);
    });
});



мне надо в двух мерный масив вносить единицу в каждый элемент индексы которого совпадают с полочеными из бд

почемуто получается одно и тоже во всех подмассивах! В БД совсем не так! В чем ощибка?
...
Рейтинг: 0 / 0
Работа с массивом
    #39984206
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Areostar,

Всё правильно получилось.
Код: sql
1.
var lockers = Array(number_locker).fill(Array(number_shelves).fill(0));


Весь массив lockers заполняется одним экземпляром массива, который заполнен нулями.
Надо как-то так:
Код: sql
1.
2.
var lockers = Array(number_locker);
lockers.forEach(function (v,i) {lockers[i] = Array(number_shelves).fill(0)});
...
Рейтинг: 0 / 0
Работа с массивом
    #39984221
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster,

Нулями всё заполняется норм. Проблема что единицы добавляются не правельно!
...
Рейтинг: 0 / 0
Работа с массивом
    #39984230
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сделал так

Код: javascript
1.
lockers[1][1] = 1;



вносит 1 в ячейку с индексом 1 каждого подмассива ???

что за аномалия?
...
Рейтинг: 0 / 0
Работа с массивом
    #39984237
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Areostar
что за аномалия?

Да написал же, всё правильно. Там один экземпляр массива везде.
Код: sql
1.
2.
3.
4.
5.
6.
var arr = Array(3).fill(Array(3).fill(0));
[ [ 0, 0, 0 ], [ 0, 0, 0 ], [ 0, 0, 0 ] ]
> arr[0][1] = 1
1
> arr
[ [ 0, 1, 0 ], [ 0, 1, 0 ], [ 0, 1, 0 ] ]


Это как если бы сделать
Код: sql
1.
2.
var x = Array(3).fill(0);
var arr = Array(3).fill(x);
...
Рейтинг: 0 / 0
Работа с массивом
    #39984336
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решил как то так:
Код: javascript
1.
var lockers = new Array(number_locker).fill(0).map(el => new Array(number_shelves).fill(0));
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Серверный JavaScript (Node.js, Ringo, Nitro, Sling) [игнор отключен] [закрыт для гостей] / Работа с массивом
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Читали форум (1): Анонимы (1)
Пользователи онлайн (8): Анонимы (6), Cat2, Yandex Bot
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]