javascript - 调用方法在 JavaScript 中不起作用

标签 javascript

下面应该警告“true”,但是,它警告“No item”。我在这个代码上出错了。有什么线索吗?

Array.prototype.CheckColor = function (datain) {
    for (var i = 0, len = this.length; i < len; i++) {
        if (this[i] === datain) {
            return true;
        } else {
            return "No item";
        }
    }
}

var newstr = "red blue green".split(" ");
var oyrsval = Array.prototype.CheckColor.call(newstr, "blue");
alert(oyrsval);

最佳答案

应该是

Array.prototype.CheckColor = function(datain){
    for (var i = 0, len = this.length; i < len;i++ ){
        if (this[i] === datain){
            return true; // Return true if found
        }
    } 
    return "No item"; // else return
}

或者使用 indexOf 更简单:

Array.prototype.CheckColor = function(datain){
    return this.indexOf(datain) > -1 ? true : "No item";
}

关于javascript - 调用方法在 JavaScript 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27820352/

相关文章:

javascript - Facebook PHP SDK v4.0 FacebookJavaScriptLoginHelper 返回状态 NULL

JavaScript、HTML、JSP onClick 语句

javascript - 使用上下文调用bind()

javascript - {{ oauth_token }} 在源中显示并工作,但不在页面上

javascript - 在 Javascript 中将对象 Promise 转换为字符串

javascript - 通过Node.js服务HTML5

javascript - 在循环中排队同步异步请求

javascript - 函数(带变量)->函数->粗箭头函数->这里显示的第一个函数的变量?

javascript - Knockout.js 如何知道将 View 元素绑定(bind)到哪个模型?

javascript - UI-Bootstrap 多个可折叠项