Я не получаю результаты, которые я ожидал от этой функции. Я ожидал, что у меня будет четыре массива с несколькими элементами. Но вместо этого я получаю неопределенный для всего в консоли. Вот мои инструкции для функции:
Ваша задача - перебрать этот массив и поместить элементы со сходством в четыре новых массива с помощью регулярных выражений и метода Array.push ():
- один с именем
og
для элементов, которые заканчиваются на og
и имеют длину 3 буквы или менее
- один с именем
at
для элементов, которые заканчиваются на at
, которые длиннее 3 букв
- один с именем
numberFirst
для элементов, начинающихся с цифр
- один с именем
numberLast
для элементов, заканчивающихся цифрами
Для моих операторов if и else if я проверяю, соответствует ли элемент выражению, которое я создал сверху. Если это совпадение, оно оценивается как истинное. Я считаю, что мои операторы if неверны или как я создал свои регулярные выражения для распознавания образов.
var mainList = ['catalog', 'dog', 'cat', 'hog', 'muskrat', 'World War 3', 'blog', 'frog', '25th of March', 'bat', 'log', 'March 25', 'slog', '10 Downing street', 'flat', 'fat', 'splat', 'blat', 'frat', 'rat', '23 Skidoo', 'Catch 22', '10 4 Good Buddy', 'fog'];
var re = /$og/; //one named 'og' for items that end with 'og' and are 3 letters long or less//
var re2 = /$at/; //one named 'at' for items that end with 'at' that are longer than 3 letters//
var re3 = /[^0-9]/; //one named 'numberFirst' for items that start with numbers//
var re4 = /$[0-9]/; //one named 'numberLast' for items that end with numbers
var arrayOG = [];
var arrayAT = [];
var arrayNumberFirst = [];
var arrayNumberLast = [];
function loop(item) {
for (var i = 0; i < mainList.length; i++) {
if (re.test(item) == true && item.length <= 3) {
arrayOG.push(item);
console.log(arrayOG);
} else if (re2.test(item) == true && item.length > 3) {
arrayAT.push(item);
console.log(arrayAT);
} else if (re3.test(item) == true) {
arrayNumberFirst.push(item);
console.log(arrayNumberFirst);
} else if (re4.test(item) == true) {
arrayNumberLast.push(item);
console.log(arrayNumberLast);
}
}
}
loop();