In meinem Poker App ich eine Reihe von Händen habe, jede Hand zu seiner Anordnung von zufällig ausgewählten Kartenobjekten mit Wert und Farbe:Nested foreach-Schleifen unerwartetes Verhalten
[ [ { value: 5, suit: 's' },
{ value: 4, suit: 's' },
{ value: 6, suit: 'c' },
{ value: 11, suit: 'd' },
{ value: 12, suit: 'c' } ],
[ { value: 9, suit: 'd' },
{ value: 12, suit: 'h' },
{ value: 8, suit: 'c' },
{ value: 12, suit: 's' },
{ value: 2, suit: 's' } ],
[ { value: 4, suit: 'h' },
{ value: 6, suit: 's' },
{ value: 10, suit: 'c' },
{ value: 3, suit: 'd' },
{ value: 7, suit: 'd' } ] ]
Um die Hände zur Auswertung vorbereitet Ich mag zurückkehren ein Array von Handobjekten mit jeweils einem Array von values
und suits
. So würde der Ausgang sein:
[
{
values: [5, 4, 6, 11, 12],
suits: ['s', 's', 'c', 'd', 'c']
},
{
values: [9, 12, 8, 12, 2],
suits: ['d', 'h', 'c', 's', 's']
},
{
values: [4, 6, 10, 3, 7],
suits: ['h', 's', 'c', 'd', 'd']
}
]
Ich versuche, verschachtelte zu verwenden foreach-Schleifen, dies zu erreichen, etwa so:
let temp = []
hands.forEach((el) => {
temp = el
el = {}
el.values = []
el.suits = []
temp.forEach((obj) => {
el.values.push(obj.value)
el.suits.push(obj.suit)
console.log(el) //expected output
})
console.log(el) //expected output
})
console.log(hands) //same as original
jedoch als Kommentare Umriss, es verhält sich wie erwartet, bis die Schleife hat beendet, wobei sich hands
überhaupt nicht geändert hat. Was fehlt mir hier? in der Anordnung, die wiederum an die variable el
Obwohl das gesagt, warum weiter 'forEach' verwenden? Dies ist, was wir der map API für map hinzugefügt haben. –
Ich stimme zu, ich würde dies nicht so schreiben, wie es das OP getan hat, aber um den Code so originalgetreu wie möglich zu halten ... – Jamiec
Wenn der ursprüngliche Code ein schlechter Code ist, sind wir hier, um Leuten zu helfen schreibe auch besseren Code. Je früher OP lernt, die Karte für diese Dinge zu verwenden, desto besser werden ihre Code-Beiträge für die Welt im Allgemeinen sein, einschließlich zukünftiger Antworten von ihnen auf SO. –