Задать вопрос
Tishaa
@Tishaa

Как отсортировать массив через forEach?

Как отсортировать другими методами я знаю, вопрос как это сделать через forEach и filter? Если это невозможно, то почему?

const word = 'JavaScript';

let x = ['a', 'e', 'i', 'o', 'u']

let a = word.toLowerCase().split("")
let b = []
x.forEach(elem=>{
    b = a.filter((item)=> item == elem)
})

console.log(b)

Почему это не работает?

Или так, ну должно же хоть 1 букву выдавать:

let a = word.toLowerCase().split("")
let b = x.forEach(elem=>{
    a.filter((item)=> item == elem)
})
  • Вопрос задан
  • 182 просмотра
Подписаться 1 Средний 2 комментария
Решения вопроса 1
Elaryks
@Elaryks
В первом случае вы в каждой итерации forEach перезаписываете значение b. Поэтому значение переменной будет равно значению, полученному в результате последней итерации. Должно быть что-то вроде такого:
x.forEach(elem => {
    b.push(...a.filter((item) => item == elem));
})

Во втором случае b === undefined, поскольку вы ничего не возвращаете из forEach.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы