【问题标题】:fill away with user input javascript填写用户输入的javascript
【发布时间】:2015-02-21 07:02:42
【问题描述】:

我想用用户输入填充对象内部的数组 我的对象是

var person = [];
var SalesPerson = {
    name: "", 
    id: 0, 
    amount: [],
    total: 0      
};

我想用从用户接收到的浮点输入来填充数量数组。 我试过了

sales.amount.push(parseFloat(prompt("Please enter sales amount:")));

我没有做我想做的工作

我获取用户输入的循环是

for (var i = 0; i < 2; i++){
  var sales = Object.create(SalesPerson);
  sales.name = prompt("Enter person Name :");
    while (nameRegExp.test(sales.name) == false) {
     alert("INPUT ERROR! Name must include at least one letter");
     sales.name = prompt("Please enter sales person name :");
     }

  sales.id = prompt("Enter person ID :");
    while (idRegExp.test(sales.id) == false) {
    alert("INPUT ERROR! Sales person ID only accapt numbers");
    sales.id = prompt("Please enter sales person ID :");
     }


  sales.amount.push(parseFloat(prompt("Please enter sales amount:")));
  person.push(sales);

}

用户输入将有 4 个值存储在数量数组中 例如,[1000000.39, 890000.23, 760000.34, 540000.98]

问题是:

• salesName:必须至少包含一个字母,其他字符无要求 • salesID:只允许使用数字 • salesAmount:按上述顺序列出的四 (4) 种汽车的 4 个非负十进制数字列表。例如,[1000000.39, 890000.23, 760000.34, 540000.98] 表示“Mercedes Benz”的销售员销售额为 $1000000.39, “奥迪”的销售额为 890000.23 美元, …

【问题讨论】:

  • 您用名称“SalesPerson”声明了您的变量,但您的.push() 调用只是说“销售”。是哪个?
  • sales 是我的蓝图对象 SalesPerson 中的新对象,我将整个对象保存在一个名为 person 的数组中
  • blex,销售是在我的循环中定义的。我将编辑我的帖子以编写整个代码
  • 抱歉,您的问题变得更加混乱?

标签: javascript arrays object


【解决方案1】:

好的,我终于明白你的问题了!

您需要在创建新的SalesPerson 时创建一个新数组,因为创建一个新对象不会创建一个新数组对象。它仍然引用第一个数组。

var sales = Object.create(SalesPerson);之后添加这一行sales.amount = [];

所以代码看起来像这样:

var sales = Object.create(SalesPerson);
sales.amount = [];

看到这个JsFiddle

【讨论】:

  • 仍然只是存储了数组数量的第一个值,其余未定义
  • alert(person[0].amount[0] + "--" +person[0].amount[1] + "--" +person[0].amount[2] + "--" +person[0].amount[3]);
  • 第一个值返回其余未定义
  • @RayMalk 那是因为每个销售人员只运行一次 sales.amount.push 行。
  • 如果你想让它运行不止一次,是的,它应该在一个循环中。
猜你喜欢
  • 2021-05-18
  • 1970-01-01
  • 2013-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-22
相关资源
最近更新 更多