883 Stimmen

Wie überspringt man ein Element in .map()?

Wie kann ich ein Array-Element in .map überspringen?

Mein Code:

var sources = images.map(function (img) {
    if(img.src.split('.').pop() === "json"){ // wenn die Erweiterung .json ist
        return null; // überspringen
    }
    else{
        return img.src;
    }
});

Dies wird zurückgeben:

["img.png", null, "img.png"]

0voto

herman Punkte 33

Du kannst das machen

var sources = [];
images.map(function (img) {
    if(img.src.split('.').pop() !== "json"){ // if extension is not .json
        sources.push(img.src); // just push valid value
    }
});

0voto

Designly Punkte 348

Ich verwende foreach():

var sources = [];

images.forEach(function (img) {
    if(img.src.split('.').pop() !== "json"){ // if extension is .json
        sources.push(img);
    }
});

HINWEIS: Ich habe deine Logik verneint.

0voto

Salih ŞEKER Punkte 149

Sie können map + filter wie folgt verwenden:

   var sources = images.map(function (img) {
    if(img.src.split('.').pop() === "json"){ // if extension is .json
        return null; // skip
    }
    else{
        return img.src;
    }})?.filter(x => x !== null);

-2voto

Manuel Punkte 2364

Verwenden Sie einfach .filter() nach .map(). Dies ist meiner Meinung nach der intelligenteste Weg.

var sources = images.map(function (img) {
    if(img.src.split('.').pop() === "json"){ // wenn die Erweiterung .json ist
        return null; // überspringen
    }
    else{
        return img.src;
    }
}).filter(x => x);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X