【问题标题】:Javascript - Using a string array in a loopJavascript - 在循环中使用字符串数组
【发布时间】:2015-02-14 16:22:56
【问题描述】:

这是一个 JS 初学者问题。我正在制作一个简单的应用程序,它需要我工作的日子、星期几,然后如果我今天工作就会提醒我。

//
var daysIWork = [
  'Wednesday',
  'Friday',
  'Saturday',
  'Sunday',
];

var dayToday = 'Saturday'; // I'll be changing this to a more advanced method, getDay? When I've figured out how to post this correctly.

for (var i = 0; i < daysIWork.length; i++) {
   console.log(daysIWork[i])
}; // This posts the array correctly, yay.

这就是我卡住的地方。如果我输入一个与数组编号匹配的数字,即[1] 而不是[i],则该语句将弹出true。然而,使用下面的代码,结果总是false

if (dayToday === daysIWork[i]) {
   alert ('Noooo, you work today!');
} else {
   alert ("Yes, you don't work today!");
}

我知道如何使用数组调用 [1] [2] 等使其工作,但我无法让它读取整个数组并以 true 的形式返回。

谢谢。

【问题讨论】:

  • 你的if在哪里?将其放在循环中时效果很好:jsfiddle
  • 重读您真正想要检测的问题,dayToday 是否在daysIWork 范围内。所以你实际上会使用daysIWork.indexOf(dayToday) !== -1 来检查它是否在数组中。对于 IE 8 及之前的版本,您需要使用 polyfill MSN: Array.prototype.indexOf()
  • 好的,但它会遍历整个数组并发布。 IE 我的 4 个项目,返回 3 false 和 1 true,这在当前代码中是有意义的。但是我只想要一个真实的和一个虚假的回来。如果 dayToday 和 daysIWork 中的某一天匹配,则发布 true 如果没有发布错误警报。
  • 所以这将在 for or if niese 范围内。
  • daysIWork.indexOf(dayToday) !== -1 有什么问题?

标签: javascript arrays string loops


【解决方案1】:

    var daysIWork = [
      'Wednesday',
      'Friday',
      'Saturday',
      'Sunday',
    ];

    var dayToday = 'Saturday';


    if (daysIWork.indexOf(dayToday) > 0) {
      console.log('boo');
    } else {
      console.log('yay')
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-07
    • 1970-01-01
    • 2021-10-28
    • 2016-05-30
    • 2020-07-06
    • 1970-01-01
    相关资源
    最近更新 更多