javascript - 为什么我的 javascript 函数没有返回 true?

标签 javascript

<分区>

我有一个 javascript 函数:

function isInSupplier(idsupplier) {
    suppliers.forEach(function(object) {
        if (object._id == idsupplier) {
            console.log("TRUE");
            return true;
        };
    });
    return false;

我有一个产品 list ,每个产品都有一个 vendor 。我想制作一个唯一 vendor 的列表,因此 vendor 已经在我的 vendor 列表中,我不会添加新的。

这是我的功能:

    console.log(isInSupplier(('<s:property value="supplier.id" />')));
    if (!isInSupplier(('<s:property value="supplier.id" />'))) {
        suppliers.push(new supplier(
                ('<s:property value="supplier.id" />'),
                ('<s:property value="supplier.supplier_name" />'),
                ('<s:property value="supplier.type" />'),
                ('<s:property value="supplier.phone" />')
        ));
    }

有些事情我不明白:即使控制台正确记录“TRUE”,函数也不会返回 true。在我的第二个代码块中,我有另一个控制台日志;总是记录错误。

我缺少什么?

最佳答案

请改成Array.prototype.some()

The some() method tests whether some element in the array passes the test implemented by the provided function.

function isInSupplier(idsupplier) {
    return suppliers.some(function(object) {
        if (object._id == idsupplier) {
            console.log("TRUE");
            return true;
        };
    });
}

或者没有控制台输出

function isInSupplier(idsupplier) {
    return suppliers.some(function(object) {
        return object._id == idsupplier;
    });
}

关于javascript - 为什么我的 javascript 函数没有返回 true?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35527030/

相关文章:

javascript - 调用变量中指定的对象的 Javascript 成员函数

javascript - 创建一个基于先前值的新对象数组

javascript - 在 html 中包含 .handlebars 或 .hbs 文件

JavaScript:在调用函数的文本输入上按回车键

javascript - 将两个 jQuery 函数合并为一个

javascript - 如何使用 javascript 返回表格中的图像数组及其文本内容

javascript - 在 jQuery 中切换类

javascript - 如何在 FabricJS 中检测 Canvas 上的空白区域?

javascript - 如何使用 jQuery 拆分表单数据并分配给另一个值?

javascript - 如何在 Chrome 的开发者工具中按主机和端口进行过滤?