2016-09-26 3 views
0

Zurückgeben nur die image_url wenn wenige image_url vielleicht null? Keine Nullwerte in Schleife

var lineItems = [ 
    { 
    description: "Packaging", 
    image_url: null, 
    ... 
    }, 
    { 
    description: "T-Shirt", 
    image_url: <the-url-link>, 
    ... 
    } 
] 

In reagieren:

... 

lineItems.map(function(line){ 
    if (line.description !== "Packaging") { 
    var img = line.image_url; 
    } 
    console.log(img); 
}); 

... 

Ich halte null zusammen mit den Web-Links in der Konsole zu bekommen. Wie man nur die image_url greift, die die Verbindungen hat. "Verpackung" wird niemals einen image_url Link haben; Es wird immer null sein.

+0

'' filter' null' Werte weg? –

+0

Verwenden Sie nicht "map" auf diese Weise, es ist nur igrones Ihre Bedingung http://stackoverflow.com/questions/26716818/using-array-map-to-filter-results-with-if-conditional – DanilGholtsman

+0

@EmilS .Jørgensen Gib mir nur die Links. – Sylar

Antwort

2

Sie können einfach eine filter hier verwenden, um das für Sie zu tun.

const nonNulls = lineItems.filter(item => item.image_url !== null); 

Dadurch werden alle Nicht-Null-Werte in eine Variable herausgefiltert.

+0

Diese Methode gibt Objekte zurück, ich brauche nur die String-URLs. – Sylar

+2

Sie müssen '.map' daran ketten wie Emil. '.map (obj => obj.image_url)' und du bist gut. –

+0

@SterlingArcher Schön, kurz und auf den Punkt. Vorsicht bei 'const' und [Lambda Funktionen] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions), wenn Kompatibilität ein Problem ist. –

2

var data = [ 
 
    { 
 
    url: null 
 
    }, 
 
    { 
 
    url: null 
 
    }, 
 
    { 
 
    url: '123' 
 
    }, 
 
    { 
 
    url: null 
 
    } 
 
] 
 
console.log(
 
    data.filter(function (a) { 
 
    return a.url != null 
 
    }).map(function (a) { 
 
    return a.url 
 
    }) 
 
)