Получите массив из чисел, содержащих цифру 8

Напишите функцию с именем luckyChineseNumber, которая принимает массив numbers в качестве аргумента и возвращает массив счастливых для китайцев чисел, т.е. чисел, содержащих цифру 8.

В решении используйте метод string.includes(otherStr[, index].

Примеры:

функция luckyChineseNumber([124, 18, 13, 8, 81, 182, 11]) должна возвратить [18, 8, 81, 182].


Пробовал так:

function luckyChineseNumber(numbers) {
    let str = numbers.join(',') let arr = [];
    for (let i = 0; i <= str.length; i++) {
        if (str.includes('8')) arr.push(i)
    }

    return arr;
}

Не понимаю как вывести элементы с цифрой 8 со строки, в массив


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

Автор решения: Алексей Шиманский

У вас много лишних действий. Все числа не надо приводить к единой строке. Надо

  1. Пробегаться циклом уже по имеющемуся массиву
  2. Каждый элемент приводить к строке
  3. К получившейся строке из текущего элемента применить метод includes

В итоге у вас на каждой итерации будут строки "124", "18" и т.д. У которых можно применять метод includes

let arr = [124, 18, 13, 8, 81, 182, 11];

function luckyChineseNumber(numbers) {
    let arr = [];
    
    for (let number of numbers)
        if (number.toString().includes('8'))     
            arr.push(number);
            
    return arr;
}

console.log(luckyChineseNumber(arr));


let arr = [124, 18, 13, 8, 81, 182, 11];

const luckyChineseNumber = (numbers) => numbers.filter(number => number.toString().includes('8'));

const luckyChineseNumber2 = (stack, number) => stack.filter(el => el.toString().includes(number));
// --------------------------------------------------------

console.log(luckyChineseNumber(arr));
console.log(luckyChineseNumber2(arr, 8));

→ Ссылка