В JavaScript, как мне написать функцию, которая получает именованный элемент условно pu sh в массив? - PullRequest
3 голосов
/ 20 февраля 2020

Впервые до JavaScript и кодирование, а также работа над программой Parking Garage, которая паркует автомобили и проверяет, какие автомобили припаркованы.

Я начинаю с функции parkCar (), которая получает имя автомобиля и помещает его в массив при условии, что места достаточно, установив максимум 7 для припаркованных автомобилей. Я застрял в том, как кодировать функцию, чтобы я мог указать названия автомобилей, которые я парковал в гараже.

В данный момент программа успешно добавляет carName в parkedCars до максимальной длины строки массива, но когда я использую консоль для проверки элементов в массиве, я получаю ["carName", "carName" ] et c. а не ["volvo", "prius"] et c. Как создать переменную, которая позволяет вводить уникальные имена автомобилей в массив?

Код вставлен ниже:

console.log('Enter CarName to park in Anne Lot');
var carName;
const maxCars=7
var parkedCars=[];
var carName

parkCar=function (){
  if(parkedCars.length<=maxCars){
    parkedCars.push('');
    console.log(parkedCars);
    console.log("Welcome to Anne's Lot.");
    }

  else {
    console.log("Sorry, Anne's Lot is at max capacity.");
  }
}

Ответы [ 4 ]

1 голос
/ 20 февраля 2020

Вы хотите, чтобы ваша parkCar функция принимала аргумент . Это должна быть машина, которую вы хотите оставить. Заполнитель для аргумента называется параметр . Имя параметра может быть любым, но это очень помогает дать ему имя, которое мгновенно проясняет, что делает функция и какие значения она принимает. В приведенном ниже примере я назвал параметр car.

Аргумент - это значение, которое вы передаете в функцию в месте параметра. Дайте функции parkCar аргумент и добавьте автомобиль, который вы хотите, в свой массив.

var parkCar = function(car) {
  if (parkedCars.length < maxCars) {
    parkedCars.push(car);
  }
}

Добавьте автомобили, подобные этой.

parkCar('audi');
parkCar('volvo');
parkCar('mercedes');
1 голос
/ 20 февраля 2020
console.log('Enter CarName to park in Anne Lot');
var carName;
const maxCars=7;
var parkedCars=[];

parkCar=function (carName){
  if(parkedCars.length<=maxCars){
    parkedCars.push(carName);
    console.log(parkedCars);
    console.log("Welcome to Anne's Lot.");
    }

  else {
    console.log("Sorry, Anne's Lot is at max capacity.");
  }
}   

Затем в консоли введите

parkCar('Car1');

и т. Д., До 7 машин.

1 голос
/ 20 февраля 2020

Если вы спрашиваете, как получить введенный именованный элемент, довольно стандартно использовать prompt(message) в среде разработки. Другие соображения:

Как правило, по возможности избегайте var, чтобы не столкнуться с неожиданным поведением. let отлично работает здесь.

Измените if(parkedCars.length <= maxCars) на if(parkedCars.length < maxCars), поэтому функция не позволит пользователю набрать sh окончательный, восьмой автомобиль, если parkingCars имеет 7 записей. Если это было задумано, и вы хотели, чтобы пользователь мог хранить 8 автомобилей в партии, измените maxCars на 8, поскольку это более интуитивно понятно.

Определите имя автомобиля в качестве аргумента вашей функции. Здесь я переименовал его в parkingCar, чтобы не было путаницы между аргументом и внешней переменной carName. Я также добавил if(parkingCar) для обработки сценария, когда пользователь ничего не вводит.

Это более стилистично c, но это хорошая идея, чтобы поместить пространство вокруг операторов и операндов, чтобы сделать ваш код более читабельным .

Если вы создаете функцию как выражение именованной функции, лучше всего использовать заключительную фигурную скобку с точкой с запятой, чтобы избежать непреднамеренного поведения.

Все, что было рассмотрено, - вот как Я бы реализовал функцию:

let carName = prompt('Enter CarName to park in Anne Lot');
const maxCars = 7
let parkedCars = [];

let parkCar = function(parkingCar) {
  if(parkingCar && parkedCars.length < maxCars){
    parkedCars.push(parkingCar);
    console.log(parkedCars);
    console.log("Welcome to Anne's Lot.");
  }
  else if(parkingCar) {
    console.log("Sorry, Anne's Lot is at max capacity.");
  } else {
    console.log("Sorry, nothing to park");
  }
};

parkCar(carName);
1 голос
/ 20 февраля 2020
parkCar=function (cName){ // accept car name value
  if(parkedCars.length<=maxCars){
    parkedCars.push(cName); // push name of car here.
    console.log(parkedCars);
    console.log("Welcome to Anne's Lot.");
    }

  else {
    console.log("Sorry, Anne's Lot is at max capacity.");
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...