首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Code.org AppLabs:我无法获取特定的是否条件并将其显示在屏幕上

Code.org AppLabs:我无法获取特定的是否条件并将其显示在屏幕上
EN

Stack Overflow用户
提问于 2021-03-07 06:06:07
回答 1查看 26关注 0票数 1

我正在开发这个天气应用程序,但我遇到了一个问题,我无法将数据集中的特定条件显示在屏幕上。它始终显示其中一个城市的是否条件,但不显示其他城市。如果可能的话,我需要一些帮助,如果你指出我所犯的任何错误,可能会有很大的帮助。

代码语言:javascript
复制
//The variables
var low = getColumn("Daily Weather", "Low Temperature");
var high = getColumn("Daily Weather", "High Temperature");
var city = getColumn("Daily Weather", "City");
var icon = getColumn("Daily Weather", "Icon");
var condition = getColumn("Daily Weather", "Main Condition");
var forecastNum = getColumn("Daily Weather", "Forecast Number");
var id = 0;
//filtered variables
var todayLow = [];
var todayHigh = [];
var todayCondition = [];
var todayIcon = [];

onEvent("locationDropdown", "change", function( ) {
  if (getText("locationDropdown") == "Anchorage, Alaska") {
    id = 1;
  } else if ((getText("locationDropdown") == "Fairbanks, Alaska")) {
    id = 6;
  } else if ((getText("locationDropdown") == "Denver/Boulder, Colorado")) {
    id = 16;
  } else if ((getText("locationDropdown") == "Chicago, Illinois")) {
    id = 31;
  } else if ((getText("locationDropdown") == "Des Moines, Iowa")) {
    id = 56;
  } else if ((getText("locationDropdown") == "Goodland, Kansas")) {
    id = 66;
  } else if ((getText("locationDropdown") == "Louisville, Kentucky")) {
    id = 86;
  } else {
    id = 96;
  }
});

onEvent("conditionButton", "click", function( ) {
  updateScreen();
  setScreen("screen2");
});
onEvent("conditionButton1", "click", function( ) {
  updateScreen();
  setScreen("screen2");
});
onEvent("tempButton", "click", function( ) {
  updateScreen();
  setScreen("screen3");
});
onEvent("homeButton1", "click", function( ) {
  updateScreen();
  setScreen("screen1");
});
onEvent("homeButton2", "click", function( ) {
  updateScreen();
  setScreen("screen1");
});
onEvent("temperatureButton", "click", function( ) {
  updateScreen();
  setScreen("screen3");
});
function updateScreen() {
  var index = id;
  console.log(id);
  for (var i = 0; i < 8; i++) {
    if (forecastNum[i] == 1) {
      appendItem(todayLow, low[i]);
      appendItem(todayHigh, high[i]);
      appendItem(todayCondition, condition[i]);
      appendItem(todayIcon, icon[i]);
    }
  }
  setText("lowTemp", todayLow[1]);
  setText("highTemp", todayHigh[1]);
  setText("label2", todayCondition[1]);
  setProperty("image2", "image", todayIcon[1]);
  console.log(idNum);
  console.log(index);
  console.log(todayLow);
}
代码语言:javascript
复制
=

EN

回答 1

Stack Overflow用户

发布于 2021-04-21 21:47:59

代码语言:javascript
复制
function updateScreen() {
  var index = id;
  console.log(id);
  for (var i = 0; i < 8; i++) {
    if (forecastNum[i] == 1) {
      appendItem(todayLow, low[i]);
      appendItem(todayHigh, high[i]);
      appendItem(todayCondition, condition[i]);
      appendItem(todayIcon, icon[i]);
    }
  }
  setText("lowTemp", todayLow[1]);
  setText("highTemp", todayHigh[1]);
  setText("label2", todayCondition[1]);
  setProperty("image2", "image", todayIcon[1]);
  console.log(idNum);
  console.log(index);
  console.log(todayLow);
}

如果我错了,请纠正我,但我相信这就是问题所在。每当您想要更新屏幕时,它只会将其更新为todayLow todayHigh todayConditiontodayIcon数组中的索引1。您应该找到一种方法来根据用户选择的下拉列表自动更改该值,而不是将"1“作为这些值的数组。而且,你做的并不是一件坏事,而是没有做:

代码语言:javascript
复制
onEvent("locationDropdown", "change", function( ) {
  if (getText("locationDropdown") == "Anchorage, Alaska") {
    id = 1;
  } else if ((getText("locationDropdown") == "Fairbanks, Alaska")) {
    id = 6;
  } else if ((getText("locationDropdown") == "Denver/Boulder, Colorado")) {
    id = 16;
  } else if ((getText("locationDropdown") == "Chicago, Illinois")) {
    id = 31;
  } else if ((getText("locationDropdown") == "Des Moines, Iowa")) {
    id = 56;
  } else if ((getText("locationDropdown") == "Goodland, Kansas")) {
    id = 66;
  } else if ((getText("locationDropdown") == "Louisville, Kentucky")) {
    id = 86;
  } else {
    id = 96;
  }
});

你也可以这样做:

代码语言:javascript
复制
onEvent("locationDropdown", "change", function( ) {
  switch (getText("locationDropdown")) {
    case "Anchorage, Alaska":
      id = 1;
    break;
    case "Fairbanks, Alaska":
      id = 6;
    break;
    case "Denver/Boulder, Colorado":
      id = 16;
    break;
    case "Chicago Illinois":
      id = 31;
    break;
    case "Des Moines, Iowa":
      id = 56;
    break;
    case "Goodland, Kansas":
      id = 66;
    break;
    case "Louisville, Kentucky":
      id = 86;
    break;
    default:
      id = 96;
    break;
  }
});

switch statement在代码中非常有用,因为它节省了时间,因为您不再需要为编写的每个其他if语句编写getText("locationDropdown")

无论如何,我希望我的回答至少有一点帮助。祝你好运!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66511112

复制
相关文章

相似问题

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