首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JavaScript中,如何编写接收命名元素的函数,以便有条件地推入数组?

在JavaScript中,如何编写接收命名元素的函数,以便有条件地推入数组?
EN

Stack Overflow用户
提问于 2020-02-20 23:35:39
回答 4查看 83关注 0票数 3

刚接触JavaScript和编码,并且正在开发一个停车车库程序,该程序可以停放汽车并检查哪些汽车已停放。

我从一个函数parkCar ()开始,该函数接收一个汽车名称并将其推入一个数组中,条件是有足够的空间,将停放的汽车的最大值设置为7。我被困在如何编写函数的代码上,这样我就可以指定我停在车库里的汽车的名称。

现在,程序成功地将carName添加到parkedCars,直到数组的最大字符串长度,但是当我使用控制台检查数组中的项时,我得到"carName“,"carName”等而不是"volvo“,"prius”等。我如何创建一个变量,允许将汽车名称唯一地输入到数组中?

粘贴在下面的代码:

代码语言:javascript
复制
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.");
  }
}
EN

回答 4

Stack Overflow用户

发布于 2020-02-20 23:41:54

代码语言:javascript
复制
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.");
  }
}
票数 1
EN

Stack Overflow用户

发布于 2020-02-20 23:43:45

代码语言:javascript
复制
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.");
  }
}   

然后在控制台中键入

代码语言:javascript
复制
parkCar('Car1');

以此类推,最多7辆车。

票数 1
EN

Stack Overflow用户

发布于 2020-02-20 23:44:04

如果您询问get如何输入命名元素,那么在开发环境中使用prompt(message)是非常标准。其他注意事项:

通常,在可能的情况下避免使用var是一个好主意,这样您就不会遇到意外的行为。let在这里运行得很好。

if(parkedCars.length <= maxCars)更改为if(parkedCars.length < maxCars),这样如果parkingCars有7个条目,该函数将不允许用户推最后一辆车,即第8辆车。如果这是预期的,并且您希望用户能够在停车场中存储8辆汽车,请将maxCars更改为8,因为这更直观。

将汽车名称定义为函数的参数。在这里,我将其重命名为parkingCar,这样就不会混淆参数和外部carName变量。我还添加了if(parkingCar)来处理用户不输入任何内容的情况。

这更符合风格,但最好在操作符和操作数周围留出空格,以使代码更具可读性。

如果要将函数创建为命名函数表达式,最佳做法是在最后的花括号后面加上分号,以避免意外行为。

考虑所有这些因素,下面是我将如何实现该函数:

代码语言:javascript
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60323487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档