Двойная проверка цикла, разной длинны .length

У меня есть 2 массива, первый имеет в себе префиксы, и его длинна: 2, второй уже имеет в себе 10-15 элементов, и его length 10-15 примерно, мне нужно делать проверку если введён один из префиксов из массива "A" и массива "B", но писать так:

const prefixes = ['1', '2'];
const context = [1,2,3,4,5,6,8];
for(i = 0; i < prefixes.length; i++) {
 for(k = 0; k < context.length; k++) {
  if(msg.txt == `${prefixes[i]} ${context[k]}`) return true;
 }
}

Не вариант для меня, сами понимаете что такой код даже визуально выглядить неправильно, скажите пожалуйста, как правильно нужно писать в подобных ситуациях

var msg = prompt();
msg = msg.trim()
var arr_l = ['!к', '.к'];
var arr_r = ['1', '2', '3'];


for(i = 0; i < arr_l.length; i++) {
    if(msg == `${arr_l[i]} ${arr_r[i]}`) console.log(true)
    else console.warn(false);
}

/*
    Не сработает так-как если ввести "!к 3", он попросту не найдет его, так-как индекс i = 2 (его максимум)
*/

Сработало так:
var msg = prompt();
var arr_l = ['!к', '.к'];
var arr_r = ['1', '2', '3'];

var parts = msg.split(' ');
if (arr_l.includes(parts[0]) && arr_r.includes(parts[1])) {
    console.log(true)
    console.log(msg)
} else {
    console.warn(false);
}

(Комментарий ниже)

Ответы (1 шт):

Автор решения: Zhihar

я бы сделал так:

  1. разбить строку через разделитель (пробел) на 2 части
  2. проверить, есть ли первая часть в массиве 1
  3. проверить, есть ли вторая часть в массиве 2

Вам такой код нужен?

const arr_l = ['!k', '.k'];
const arr_r = ['1', '2', '3'];

const parts = msg.split(' ');

if (arr_l.includes(parts[0]) && arr_r.includes(parts[0]))
    return true;
→ Ссылка