node array.find保持给-1

时间:2016-11-15 09:51:40

标签: javascript arrays node.js

我有一个MEAN js应用程序,每当我在数组上使用find时,回调函数就不会被执行,find直接返回-1

当我在项目的单个文件中执行它时,它可以正常工作,但当我在我的应用程序中require该文件时,它会回到-1

我在firefox网站上尝试这个基本示例:

var inventory = [
    {name: 'apples', quantity: 2},
    {name: 'bananas', quantity: 0},
    {name: 'cherries', quantity: 5}
];

function findCherries(fruit) {
    return fruit.name === 'cherries';
}

console.log(inventory.find(findCherries));

这可能是什么原因?它过去常常正常工作,-1无处不在!

1 个答案:

答案 0 :(得分:0)

node-opcua是罪魁祸首。完成require("node-opcua")后,find函数的本机代码将替换为以下内容:

function (value, equals) {
    equals = equals || this.contentEquals || Object.equals;
    for (var index = 0; index < this.length; index++) {
        if (index in this && equals(value, this[index])) {
            return index;
        }
    }
    return -1;
}