2016-11-15 2 views
0

Ich habe eine MEAN js-Anwendung, in der immer, wenn ich find auf einem Array verwenden, die Callback-Funktion nicht ausgeführt wird, und find gibt sofort -1 zurück.Knoten array.find hält geben -1

Als ich es in einer einzelnen Datei des Projektes ausführen, arbeiten sie richtig, aber wenn ich require, die in meiner Bewerbung einreichen, es geht zurück auf -1

Ich versuche, dieses grundlegende Beispiel von Firefox-Website:

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)); 

Was könnte der Grund dafür sein? Früher hat es richtig funktioniert, jetzt plötzlich, -1 überall!

+3

einige Bibliothek, die Sie modifiziert verwenden 'Array.prototype.find' Vielleicht? – pawel

+0

Es funktioniert für mich, in einer einzelnen Datei und durch 'require' – greuze

Antwort

0

node-opcua war der Schuldige. Sobald ich require("node-opcua") tun, wird der native Code der Suchfunktion erhält folgende Fassung bekommen:

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; 
} 
+2

Sie sollten einen Fehlerbericht mit diesem Paket einreichen. Das Ändern nativer Objekte ist nicht gut. –

+2

https://github.com/node-opcua/node-opcua/issues/248 – str

Verwandte Themen