Mark, использую Visual Studio Code, но такие косяки он не подсвечивает. Может и есть какой плагин, я не в курсе.
А вообще действовал так: в консоле в ошибке написано, что переменная isOpen не прокидывается, следовательно через плагин vue devtools проверяем на каком месте эта переменная теряется. Определил, что в MainLayout всё ок, а в Sidebar она не попадает. Начал внимательно смотреть код компонента – вот и нашёл
Aetae, странно, но у меня хром отрабатывает операцию с лимитом примерно в полтора раза дольше, чем без лимита. По логике получается, что под капотом всё-таки происходит обрезание полученного массива согласно лимиту, как в русской доке, которую скинул Владимир
Если необходимо обрабатывать большое количество строк, то имеет смысл использовать такой вариант (примерно в 5 раз быстрее предложенного варианта со split)
const str = '12:00 PM';
let pos = str.indexOf(':');
const x = str.slice(0, pos);
Заранее извиняюсь, с C++ совсем не знаком, напишу на псевдокоде своё виденье ответа на вопрос. Может направит в нужном направлении
// указываем шанс выпадения предметов в процентах
предметы = {
предмет_1: 10
предмет_2: 35
предмет_3: 5
}
// получаем сумму всех шансов
сумма_шансов = 10 + 35 + 5 = 50
// генерируем случайное число в диапазон от 0 до сумма_шансов
random = Math.RandomInt(0, сумма_шансов); // например, 40
// проходимся циклом и суммируем шансы до тех пор, пока полученная сумма меньше числа random
сумма = 0 + 10 // меньше 40, идём дальше
сумма = 10 + 35 // больше 40, значит это выпавший предмет_2
olya_097, при первом нажатии этот атрибут не задан, поэтому функция увеличения значения отрабатывает и устанавливает data-liked="true". Там идёт проверка на величину true этого атрибута
А вообще действовал так: в консоле в ошибке написано, что переменная isOpen не прокидывается, следовательно через плагин vue devtools проверяем на каком месте эта переменная теряется. Определил, что в MainLayout всё ок, а в Sidebar она не попадает. Начал внимательно смотреть код компонента – вот и нашёл