Смузи, маффин, гироскутер


#1

Ребята привет, вот мой вариант кода, все рабочее, но очень длинно, как по мне, пока что мастерства для сокращения мало, показывайте как можно сократить и сделать код более красивым и лаконичным.
Только прошу учитывать ограничения в задании, знаем мы только УСЛОВИЯ, ЦИКЛЫ и МАССИВЫ.

// Состав смузи

var liquids = ['вода', 'молоко', 'сок', 'чай', 'йогурт'];
var fruits = ['киви', 'банан', 'персик', 'манго', 'груша', 'ананас'];
var greens = ['мята', 'шпинат', 'руккола', 'петрушка', 'базилик'];


// Выбор посетителя

var chosenLiquid = 1;
var chosenFruit = 3;
var chosenGreen = 2;

var selectLiquid;
var selectFruit;
var selectGreen;


  for (var i = 0; i < liquids.length; i++) {
    if (i === chosenLiquid - 1) {
      console.log (liquids[i]);
      selectLiquid = liquids[i];
    }
    
  }
  
  for (var j = 0; j < fruits.length; j++) {
    if (j === chosenFruit - 1) {
      console.log (fruits[j]);
      selectFruit = fruits[j];
    }
  }
  
  for (var k = 0; k < greens.length; k++) {
    if (k === chosenGreen - 1) {
      console.log (greens[k]);
      selectGreen = greens[k];
    }
  }

// Заказ

var order = 'Основа — ' + selectLiquid + ', фрукт — ' + selectFruit + ', зелень — ' + selectGreen;

console.log (order);

#2

Вот такой вариант

// Состав смузи

var liquids = ['вода', 'молоко', 'сок', 'чай', 'йогурт'];
var fruits = ['киви', 'банан', 'персик', 'манго', 'груша', 'ананас'];
var greens = ['мята', 'шпинат', 'руккола', 'петрушка', 'базилик'];

// Выбор посетителя

var chosenLiquid = 1;
var chosenFruit = 3;
var chosenGreen = 2;

// Заказ

var order = 'Основа — ' + liquids[chosenLiquid -1] + ', фрукт — ' + fruits[chosenFruit -1] + ', зелень — ' + greens[chosenGreen -1];
console.log(order);

#3

Господи, я безнадёжен :sweat_smile:
Так всё просто на самом то деле.


#4

У меня важный вопрос, я ради этого только на форуме и зарегистрировался.
А как Вы ставите длинное тире — ???
У меня получается, только такое - или такое _ .
Очень интересует, т.к я час мучился пока не дошло, что такое - воспринимается программой скорее как минус, а не тире.
Там получается данные верные, но проверка вся красная.
Я это тире получил таким образом, просто его скопировал и вставил.
Подскажите мне пожалуйста, как это тире быстро ставить сразу с клавиатуры.


#5

— такое?

var Em_Dash = “\u2014”;


#6

О спасибо тебе огромное. Я теперь это обязательно запомню alt + 0151.
А то я постоянно с этим сталкивался.


#7

order = ('Основа — ’ + liquids[chosenLiquid - 1] + ', фрукт — ’ + fruits[chosenFruit - 1] + ', зелень — ’ + greens[chosenGreen - 1]);


#8

еще один вариант на индекс 0, ставлю подсказку для пользователя

var liquids = ['вода', 'молоко', 'сок', 'чай', 'йогурт'];
var fruits = ['киви', 'банан', 'персик', 'манго', 'груша', 'ананас'];
var greens = ['мята', 'шпинат', 'руккола', 'петрушка', 'базилик'];

// Выбор посетителя

var chosenLiquid = 1;
var chosenFruit = 3;
var chosenGreen = 2;

// Заказ

liquids.unshift('Введите цифру от 1');
fruits.unshift('Введите цифру от 1');
greens.unshift('Введите цифру от 1');

var order = 'Основа — ' + liquids[chosenLiquid] +  ', фрукт — ' + fruits[chosenFruit] +  ', зелень — ' + greens[chosenGreen];

#9

liquids.unshift(‘Введите цифру от 1’);
fruits.unshift(‘Введите цифру от 1’);
greens.unshift(‘Введите цифру от 1’);
А это для чего, заменяет -1? Мы ещё unshift не проходили вроде.


#10

а вы его в принципе не пройдете. его на курсах не дают.
суть что он добавляет в массивы по первому элементу-подсказке, что в конечном итоге увеличивает длину массивов и соответственно решает проблему счета между программистами (которые счет ведут с 0) и обычными людьми (которые счет ведут с 1)
имхо через -1 проще


#11

однако засада с тире …=( (пока не скопировала, ( спасибо [Valery_S]) проверку не проходила. Код прилагаю ниже, буду признательна за замечания

var order = ‘’;

var i=chosenLiquid-1;

var j=chosenFruit-1;

var k=chosenGreen-1;

var order = 'Основа — '+liquids[i] + ', фрукт — ’ + fruits[j]+ ', зелень — ’ +greens[k];

console.log (order);