У меня есть 2d-массив, содержащий до [32] [32] записи. И я хотел бы, чтобы преобразовать его из чего-то вроде этого:Преобразование многомерного массива в объект
[
null,
null,
null,
null,
null,
null,
[null, null, null, null, null, null, null, null, null, null, "player1"],
[null, null, null, null, null, "player2"]
]
к
{
"6": {"10":"player1"},
"7": {"5":"player2"}
}
Так что это был бы мой массив:
var gameField = [];
gameField[6] = [];
gameField[6][10] = "player1";
gameField[7] = [];
gameField[7][5] = "player2";
Теперь я попытался использовать это:
var obj = {}
obj = Object.assign({},gameField);
console.log(JSON.stringify(obj));
но он работал только для внешнего массива, внутренние массивы не были затронуты:
{
"6": [null, null, null, null, null, null, null, null, null, null, "player1"],
"7": [null, null, null, null, null, "player2"]
}
Что бы самый короткий путь, чтобы сделать это правильно?
Можете ли вы объяснить, что вы пытаетесь достичь? – Rajesh
Это кажется очень плохой структурой, до * и * после. Клавиши динамических объектов в основном трудно использовать. Почему бы вам не использовать что-то более чистое, например, '[{player: 'player1', numberOfX: 10}, {player: 'player2', numberOfX: 5}]'. – str
Структура немного сложнее в реальности. Это больше, чем просто игроков. То, что я хочу достичь, - просто преобразовать массив 2d в объект, который использует индексы массива в качестве ключей. Чтобы я мог избавиться от всех нулевых значений массива. – Forivin