Возвращаем значение массива в JavaScript - PullRequest
0 голосов
/ 17 ноября 2018

Я пытаюсь вернуть значение соответствующего ключа массива из базы данных sqlite, где, как только сообщение содержит слово, которое ему соответствует (что у меня работает), но затем я бы хотел вернуть значение (в этомдлина корпуса) соответствующего ключа.Пример.

Массив: [ 'hello', 5000, 'world', 2000 ]

Мой код для возврата сообщения чата 'true', если отправленное сообщение содержит слово в вышеуказанном массиве

var amarray = [];
con.all(
  "SELECT phrase, length FROM automod_data WHERE type = 'mute'",
  (err, rows) => {
    rows.forEach(function(row) {
      amarray.push(row.phrase, row.length);
    });
    console.log(amarray);

    if (amarray.some(v => message.content.includes(v))) {
      message.reply("true");

      logembed = new discord.RichEmbed().setFooter(`ID: amarray[1]`);

      client.channels.find(channel => channel.name === "logs").send(logembed);
    }
    return amarray;
  }
);

Таким образом, вышеприведенное возвращает «истина», когда произносится «привет».Я также хотел бы вернуть значение «5000»

1 Ответ

0 голосов
/ 17 ноября 2018

Вместо того, чтобы выдвигать каждое значение как отдельный элемент массива, выдвигайте объект целиком.

rows.forEach(function(row) {
  amarray.push(row);
});

Затем вы можете искать элемент, который соответствует v.

var match = amarray.find(v => message.content.includes(v.phrase));
if (match) {
    console.log("true", matching.length);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...