2017-06-13 16 views
-2

Ich versuche neue Eigenschaft hinzuzufügen, die überprüft, ob ein Geschwister-Array leer ist, aber nicht in der Lage, mit Push zu erreichen, was ich will.Push funktioniert nicht in Karte

https://jsbin.com/zutiboyaji/edit?html,js,console,output

let x = [{ 
    "name": [{ 
     "first": "m", 
     "last": "jordan" 
    }], 
    "extraObj": [{ 
     "something": "bla bla bla" 
    }] 
}] 

const result = x.map(obj => { 
    if(obj.extraObj.length > 1){ 
    obj.name.extraObj.push({"whatever":"whatever"}) 
    } 

    return obj 
}) 

console.log(result) 

Was oben mit meiner Schleife falsch?

+0

'name' nicht definiert ist - versuchen' obj.extraObj.push' –

+0

@JaromandaX bearbeitet die Frage. –

+0

Ich verstehe nicht die Logik ... jetzt 'obj.name.extraObj' existiert nicht, so das gleiche Problem - wo willst du" was auch immer "hinzufügen, und warum nur, wenn es 2 oder mehr" extraObj "gibt ? Können Sie Ihr erwartetes Ergebnis bitte anzeigen? –

Antwort

1

Wenn Ihre Bedingung fehlschlägt, weil Sie length>1 überprüfen, sollten Sie length >=1 verwenden. und es gibt kein name Objekt. Verwenden obj.extraObj.push

let x = [{ 
 
    "name": [{ 
 
     "first": "m", 
 
     "last": "jordan" 
 
    }], 
 
    "extraObj": [{ 
 
     "something": "bla bla bla" 
 
    }] 
 
}] 
 

 
const result = x.map(obj => { 
 
    if(obj.extraObj.length >= 1){ 
 
    obj.extraObj.push({"whatever":"whatever"}) 
 
    } 
 
    
 
    return obj 
 
}) 
 

 
console.log(result)

Verwandte Themen