Гость
Форумы / Серверный JavaScript (Node.js, Ringo, Nitro, Sling) [игнор отключен] [закрыт для гостей] / Работа с массивом / 6 сообщений из 6, страница 1 из 1
26.07.2020, 22:53
    #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
27.07.2020, 05:08
    #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
27.07.2020, 08:13
    #39984221
Areostar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с массивом
crutchmaster,

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

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



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

что за аномалия?
...
Рейтинг: 0 / 0
27.07.2020, 09:07
    #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
27.07.2020, 13:36
    #39984336
Areostar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с массивом
Решил как то так:
Код: javascript
1.
var lockers = new Array(number_locker).fill(0).map(el => new Array(number_shelves).fill(0));
...
Рейтинг: 0 / 0
Форумы / Серверный JavaScript (Node.js, Ringo, Nitro, Sling) [игнор отключен] [закрыт для гостей] / Работа с массивом / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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