【问题标题】:Why is this - count === 0 && (index = 0) - different than - count === 0, index = 0;?为什么这 - count === 0 && (index = 0) - 与 - count === 0, index = 0; 不同?
【发布时间】:2022-11-03 00:35:30
【问题描述】:

我很难把它放在一起,有人建议我在这篇文章中更改标题中的代码。完整的算法如下,这是一个 Hackerrank 问题。我很难找到数据如何索引本身以及如何将我拥有的代码“片段”连接在一起。

在按照建议进行操作后,这适用于测试用例,但我仍然不知道它是如何工作的。任何可以找到答案的解释或链接都很棒。我一直在教自己如何解决和分解问题,像这样的问题和其他索引问题(因为没有更好的词)总是困扰我的问题。在看到如何纠正我的错误之后,这似乎很容易,但现在......好吧......让我们说我很高兴在开始之前我已经失去了头发。

https://www.hackerrank.com/challenges/jumping-on-the-clouds-revisited/problem?h_r=next-challenge&h_v=zen&isFullScreen=false

let c = [1,1,1,0,1,1,0,0,0,0]; //array of clouds
let e = 100; //energy, one unit is used to jump from cloud to cloud
let k = 3; //size of jump or c[(i+k)%n]
let n = c.length;
//if it lands on thundercloud, energy decreases by 2 additional units
//game ends when player is back on cloud zero c[0]

const jumpingOnClouds = () => {
    let count = 0;
    let index;
    while (index !== 0 && e >= 0) {
      count === 0, index = 0;
      index = (index + k) % n;
      console.log(index)
      e = c[index] > 0 ? e - 3 : e - 1;
      count++;
    }
  
    return e;
};

console.log(jumpingOnClouds());

我尝试使用 for 循环和 if 语句,但我永远无法让循环迭代回到开头并在需要从数组开头重新开始时保留 i+=3。

【问题讨论】:

  • 你期待count === 0 做什么?它实际上没有做任何其他评估代码并且对它没有做任何事情。你知道逗号运算符是做什么的吗?你知道 && 是做什么的吗? MDN 是你研究它的朋友。
  • 参考那条线,不要试图在一条线上放太多东西。换行符是你的朋友。

标签: javascript arrays


【解决方案1】:

count === 0 && (index = 0)

☝️ 如果count 严格等于0,则将0 分配给index 并计算为0;否则,评估为false

count === 0, index = 0

☝️ 评估count 是否严格等于0 并丢弃结果;然后将0 分配给index 并计算为0

【讨论】:

    猜你喜欢
    • 2012-03-08
    • 1970-01-01
    • 2019-12-10
    • 2014-01-05
    • 2020-12-22
    • 2017-05-20
    • 1970-01-01
    • 1970-01-01
    • 2012-06-13
    相关资源
    最近更新 更多