javascript - while(n- ->1) 是什么意思?

标签 javascript

我看到了question在 Leetcode 中。

另外,我在其中找到了解决方案。

我不明白的一件事是这行代码

 while(n-- >1)

有人可以解释一下 --> 的含义吗? 这是 JS:

 var countAndSay = function(n) {
    var result = "1";

    var prev;
    var count;
    var tmp;

    while (n-- > 1) {
        prev = result[0];
        count = 1;
        tmp = [];
        for (var i = 1; i < result.length; i++) {
            if (prev === result[i]) {
                count++;
            } else {
                tmp.push(count, prev);
                prev = result[i];
                count = 1;
            }
         }
    
         tmp.push(count, prev);
         result = tmp.join("");
       }

    return result;
     };
    console.log(countAndSay(4))

最后一件事,有人可以解释一下这个问题的含义吗。

我还是不明白为什么2是11,3是21,4是1211,5是111221。

最佳答案

表达式

n-- > 1

意思是:将n减一,并检查其减前的值是否大于1。

while (n-- > 1) {
  // rest of the code

相当于

while (true) {
  if (n > 1) {
    n--;
    // rest of the code
  } else {
    // n is decremented regardless:
    n--;
    // initial condition was not fulfilled:
    break;
  }

或者,条件是否定:

while (true) {
  const origN = n;
  n--;
  if (!(origN > 1)) {
    break;
  }
  // rest of the code

关于javascript - while(n- ->1) 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55253620/

相关文章:

javascript - Facebook 登录和 Node js 服务器

javascript - 在文本输入区域创建双向更新

javascript - 将表单上的所有字段设置为必填字段

javascript - 匹配 0 或 1 的正则表达式

javascript - 同构 Redux React 样板

javascript - 如何获取表中当前元素之前出现的具有特定类的元素数?

javascript - 如何为页面中的所有 anchor 链接添加平滑滚动

javascript - 以编程方式在指令中添加指令

javascript - 如何从输入表单中获取文本?

javascript - 带有包含文件的 js/php