2016-02-12 13 views
7
var userids = userbody.contacts.map(function(obj){ 

    if((obj.iAccepted=='true')&&(obj.contactAccepted=='true')) { 
    console.log(true); 
    return obj.userID //return obj.userID 
    } 

}); 

Dies wird das Ergebnis wie folgt ergeben:Wie kann ich das Element von Array .map überspringen?

[ '0', '35', '37', '30', '34', '36', '33 ‘, '32', undefiniert, '332', '328', '337', '333', undefined]

ich mag die undefinierten Elemente im Array überspringen.

+0

nicht false zurück? – Shanoor

+0

seine Rückkehr falsch als ein Element, aber ich möchte überspringen, dass ich brauche als ['0', '35', '37', '30', '34', '36', '33', '32', "332", "328", "337", "333"] anstelle von [0, 35, 37, 30, 34, 36, 33, 32 , false, '332', '328', '337', '333', false] –

+1

Mögliches Duplikat von [JavaScript überspringen Element auf .map()] (https://stackoverflow.com/questions/24806772/javascript- skip-element-on-map) –

Antwort

16

Dies ist, was Array.prototype.filter() für ist. Sie müssen dies in zwei Schritten tun.

Der Filterteil entfernt alle unnötigen Elemente, dann konvertiert die Karte den Rest in die von Ihnen gewünschte Weise.

+0

Es gibt mir einen Fehler "unexcepted Token" –

+0

Verwenden Sie eine veraltete node.js? Es funktioniert auch mit node.js LTS v4.2.4 und in [jsbin] (http://jsbin.com/hudivipivu/edit?js,console) gut. –

+0

Nr /var/www/html/nodeproject/helloworld/index.js:270 .filter (Kontakt => contact.iAccepted == 'true' && contact.contactAccepted ^ Syntaxerror: Unexpected token> am Modul. _compile (module.js: 439: 25) bei Object.Module._extensions..js (module.js: 474: 10) bei Module.load (module.js: 356: 32) bei Function.Module._load (module.js: 312: 12) bei Function.Module.runMain (module.js: 497: 10) beim Start (node.js: 119: 16) bei node.js: 902: 3 –

0

Nicht sicher, ob dies ist, was Sie suchen:

var arr = [true,true,false,true,false]; 


var result = arr.map(function(val,ind,arr){ 

     if(val === !false){ 
      return val 
     } 
}) 

console.log(result) // true, true , true 

https://jsfiddle.net/horonv8a/

+0

ich will nicht Um den Wert zurückzugeben, muss ich den Wert überspringen, der nicht der Bedingung entspricht, die jetzt wahr ist, sowie den falschen Wert, der in das Array-Element eingefügt wurde. –

0

Sie können die falschen Werte herauszufiltern:

userids = userids.filter((i) => i); 

Oder, wenn Sie nicht Pfeil Funktionen verwenden können:

userids = userids.filter(function(i) { return i; }); 
+0

mein Wert ist nicht wie wahr oder falsch ist es ein numerischer Wert Ich möchte die Benutzer-ID, deren Kontaktakzeptiert oder iaccepted Wert ist wahr –

+0

In Javascript, eine Zahl von 0 oder eine nicht leere Zeichenkette ist ein "truthy" Wert: http://james.padolsey.com/javascript/truthy-falsey/ – Shanoor

+0

shan bitte versuchen zu verstehen, ich habe eine JSON-Daten, die so amny Werte haben, die realted Kontaktakzeptiert wahr und Ich akzeptierte nun die Dinge, die ich habe, um diese IDs zu filtern, die beide den Wert der Variablen wahr sind. Ich habe die Kartenfunktion verwendet, um das zu überprüfen. Mein Hauptproblem, wenn der Zustand Wert ist dann ID Rückkehr in Array aber wenn die Bedingung Wert ist falsch Ich möchte nicht hinzufügen, dass nichts in diesem Fall undefined wird automatisch hinzugefügt in der Liste das ist yi verwenden zurück false jetzt resukt ist wie [ 34,56, falsch, 74] aber ich will das nicht ich will [34,56,74] nothinh wird in anderer Aussage zurückkehren –

Verwandte Themen