javascript - Codewar 挑战 JavaScript

标签 javascript arrays function loops

希望每个人都有美好的一天。

这是我在 Stackoverflow 上发表的第一篇文章!

我刚刚完成了 Codeacademy 上的 javascript 类(class),并且也阅读了几本相关书籍。现在我正在进行代码战。我将自己归类为 Javascript 初学者。

我发现自己有点陷入挑战,请问有人可以阐明我可能做错了什么吗?非常感谢!

以下是说明:

检查字符串中“x”和“o”的数量是否相同。该方法必须返回 bool 值并且不区分大小写。该字符串可以包含任何字符。

这是我的代码:

function XO(str) {
    var x = [];
    var o = [];

    for (var i = 0; i <= str.length; i++) {
        if (str(i).toLowerCase === "x") {
            x.push(i);
        } else if (str(i).toLowerCase === "o") {
            o.push(i);
        }

        if (x.length === o.length) {
            return true;
        } else {
            return false;
        }
    }
}

最佳答案

我纠正了错误并用代码注释来解释

function XO(str) {
    var x = [];
    var o = [];
    for (var i = 0; i < str.length; i++) { // i must be lower than length
        // str[i] or str.charAt(i), not str(i)
        if (str[i].toLowerCase() === 'x') { // toLowerCase is function, it must be called with toLowerCase()
            x.push(str[i]); // should push character
        } else if (str[i].toLowerCase() === 'o') {
            o.push(str[i]);
        }
    }
    // return statement must be located at the end
    if (x.length == o.length) {
        return true;
    } else {
        return false;
    }
}
console.log(XO('xo'));
console.log(XO('xxo'));
console.log(XO('xoX'));
console.log(XO('xoOX'));

关于javascript - Codewar 挑战 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45661429/

相关文章:

javascript - 如何为 mediaelement.js 创建皮肤?

python - 强制乘法使用 __rmul__() 而不是 Numpy 数组 __mul__() 或绕过广播

php - 将两个数组合并为一个(追加)

c: 我的函数不计算任何单词

c++ - 信号处理程序异步安全功能

function - Clojure 映射函数以什么方式?

javascript - Angular : What is the best way to bind to a global event in a directive

javascript - 围绕 DIV 中心旋转的元素 - 只有添加到页面的最后一个元素响应 onClick 事件

javascript - 不想返回整个对象,如何过滤掉我不想要的东西?

arrays - 使用 jsonb_set() 更新特定的 jsonb 数组值