Я пытаюсь перенести интерактивную игровую игру с Infor7 на Javascript. Большая часть синтаксиса легко конвертируется в JavaScript; некоторые из них могут быть даже оптимизированы после преобразования. Но функция «Таблица» изначально не существует в javascript, и я могу придумать много способов ее подражать. Вот как выглядит синтаксис для таблицы inform7:
Table of example table
column one column two column three column four
---------- ---------- ------------ ----------
---------- ---------- ------------ ---------
When Play begins:
Choose a blank row from Table of example table;
now column one entry is "text";
now column two entry is 400;
now column three entry is true
now column four entry is [non primitive]
Какой самый эффективный способ реализовать это в javascript?
Пожалуйста, имейте в виду, что я планирую использовать строгий режим и не хочу даже рассматривать использование сторонних фреймворков / библиотек, таких как JQuery. Только JavaScript, как определено в последних спецификациях ECMAScript.
Некоторые из моих идей:
с использованием карты:
const tables = new Map();
// to create table
tables.set("wandering monsters", [
new Map([
["monster name","default"]
])
]);
//to get table entry
tables.get("wandering monsters")[0].get("monster name");
с использованием функции:
function table(name, row, key, val, entrylist){
var result;
if (table.data == undefined){
table.data = new Map();
};
switch (arguments.length) {
case 1:
result = table.data.get(name);
break;
case 2:
table.data.set(name, []);
result = table.data.get(name);
break;
case 3:
result = table.data.get(name)[row].get(key);
break;
case 4:
table.data.get(name)[row].set(key, val);
result = table.data.get(name)[row].get(key);
break;
case 5:
table.data.get(name)[row] = new Map(entrylist);
result = table.data.get(name)[row];
break;
default:
result = table.data;
};
return result;
}
я редактирую на мобильном телефоне