Как можно сортировать "Напитки' по пустым массивам

Код:

let menu=["Americano","Espresso","Latte","Capucino","Orange","Apple","Cherry","Mango","Green Tee","Black Tee","English Breakdast","Puer"];
let jucie=[];
let coffee=[];
let tee=[];

let sortt=function(a){
    for(let i=0;i<a.length;i++){
        menu.sort()
        console.log(menu)
    }
}
sortt(menu)

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

Автор решения: Алексей Р

Почему бы просто не сделать словарь? В общем, можно обойтись и без отдельных (избыточных) переменных, но можно и с ними.

let menu = {
    "coffee": ["Americano", "Espresso", "Latte", "Capucino"],
    "juice": ["Orange", "Apple", "Cherry", "Mango"],
    "tea": ["Green tea", "Black tea", "English Breakdast", "Puer"]
};

// в общем-то избыточные переменные
let juice = menu['juice'];
let coffee = menu['coffee'];
let tea = menu['tea'];

console.log(`Соки: ${juice}`);
console.log(`Кофе: ${coffee}`);
console.log(`Чай: ${tea}`);

// если нужно вывести полный список без группировки
let menu_list = Object.values(menu).reduce((a, c) => c + a, []);
console.log(`Полное меню в списке: ${menu_list}`)

→ Ссылка
Автор решения: hedgehogues

Вы можете сортировать элементы массива menu с помощью метода sort, как вы уже сделали. Однако, этот код не будет разбивать элементы массива menu на разные массивы jucie, coffee и tee, так как это не прописано в функции sortt.

Чтобы разбить элементы массива menu на три разных массива, вам нужно добавить код, который будет проверять каждый элемент массива menu и определять, к какому типу напитков он относится. Например, элемент "Espresso" можно добавить в массив coffee, а элемент "Orange" можно добавить в массив jucie.

let sortt = function(a) {
  for (let i = 0; i < a.length; i++) {
    if (a[i].includes("Tea")) {
      tee.push(a[i]);
    } else if (a[i].includes("Coffee")) {
      coffee.push(a[i]);
    } else {
      juice.push(a[i]);
    }
  }
}

sortt(menu);
console.log(juice); // ["Orange", "Apple", "Cherry", "Mango"]
console.log(coffee); //
→ Ссылка