#node.js
Вопрос:
Я играл с системой регулярных выражений, и одна вещь, которую я заметил, была странной, это то, что я зарегистрировал в консоли такой результат:
[
"match",
"another thing",
input: "my reg exp"
]
но когда я пытаюсь присвоить ему значение переменной, это не работает. Я даже могу получить доступ к этому странному var, как это:
const weirdVar = func();
console.log(weirdVar[0]); // match
Я тоже пытался создать его таким:
const vari = {
"a",
"b",
input: "lol"
};
Кажется, ничего не работает. При этом я также видел, как некоторые функции возвращали это!
RowDataPacket { id: 'Hello space', message: 'uwu' }
Это и массив тоже, я предполагаю, как я могу получить данные с помощью [0]
[
RowDataPacket { id: 'Hello space', message: 'uwu' },
RowDataPacket { id: 'test', message: 'ME' },
RowDataPacket { id: 'test', message: 'ME' }
]
Что это за странный тип данных?
Комментарии:
1.
const a = ["a", "b"]; a["input"] = "lol"; console.log(a)
.2. О, злоупотребление массивом, как насчет второго объекта с префиксом RowDataPacket в качестве префикса, что это такое
3.
class A { constructor(name) { this.name = name; } }; const a = new A('ME'); console.log(a);
4. Вау, спасибо, тебе не кажется, что ты должен опубликовать это в качестве ответа, чтобы я мог его озвучить?
Ответ №1:
Первая переменная-это массив. Массив также является объектом, что означает, что у него есть ключи атрибутов и значения. Но ключи атрибутов обычного массива-это числа (индекс), и вы можете добавить дополнительный ключ в массив в качестве объекта.
const arr = ['index 0 value'];
arr[1] = 'index 1 value'; // attribute key is `1`;
arr.input = 'input value';
arr['output'] = 'output value';
console.log(arr);
Второй результат- RowDataPacket
тип класса es6
class RowDataPacket {
constructor(id, message) {
this.id = id;
this.message = message;
}
}
const instance = new RowDataPacket("new id", "new message");
console.log(instance);
console.log([instance]);