【问题标题】:Function doesn't update new valuables功能不会更新新的贵重物品
【发布时间】:2014-08-28 10:43:58
【问题描述】:

我对 javascript 还很陌生,但遇到了一些问题。问题是以下代码中的提示永远不会更新为实际的贵重物品,而“console.log”出于某种原因会这样做。我真的很想知道为什么会发生这种情况,以及是否有任何方法可以使它工作,以便提示会像“console.log”一样更新。我尝试在代码中稍微移动变量的位置,但由于我不是专家,我不确定变量的位置是否正确。

非常感谢帮助,如果有不清楚的地方请告诉我!

var alive = true;    
var destinationArray = ["town ", "areas ", "bosses"];
var destinationArraySet = 1;
var allDestination = destinationArray.slice(0, destinationArraySet).join(' ').trim();
var userDestinationPrompt = ("Where would you like to go? Available places: \n" + allDestination +".");

var userDestination = function () {
    allDestination = destinationArray.slice(0, destinationArraySet).join(' ').trim();
    console.log(allDestination);
    userDestinationAnswer = prompt(userDestinationPrompt).toUpperCase();
    destinationArraySet++;
};

while (alive) {
    userDestination();
}

【问题讨论】:

  • userDestinationPrompt 在这里是不变的:当allDestination 改变时它不会被更新......你应该使用一个函数。

标签: javascript arrays function variables prompt


【解决方案1】:

“userDestination”是新功能。

并且“userDestinationPrompt”的值已在函数调用之前设置。

在函数内设置值将解决您的问题。

var userDestination = function () {
    allDestination = destinationArray.slice(0, destinationArraySet).join(' ').trim();
    console.log(allDestination);
    var userDestinationPrompt = ("Where would you like to go? Available places: \n" + allDestination +".");
    userDestinationAnswer = prompt(userDestinationPrompt).toUpperCase();
    destinationArraySet++;
};

【讨论】:

  • 我记得以前这样做过,但是我不喜欢它,如果我想更改提示,我必须完全搜索它,所以我将它设置为函数外部的变量。但我不知道 'allDestination' 没有在提示中得到更新,除非整个提示本身得到更新。至少我现在知道它现在是如何工作的,谢谢你的回答:)。
猜你喜欢
  • 2019-12-10
  • 2014-02-14
  • 1970-01-01
  • 2023-04-10
  • 2015-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多