Ich habe ein Array wie folgt aus:Wie ändert man die Werte der Kinder eines Arrays von Objekten?
const mockObjPanoramas = [{
'id': '7oADHnGZcr',
'appMarkers': [{
'panoId': '7oADHnGZcr',
'color': 'red',
'x': 0,
'y': 0,
'z': 1000
}, {
'panoId': '8szmQ8ELKs',
'color': 'red',
'x': 100,
'y': 0,
'z': 1000
}]
}, {
'id': '8szmQ8ELKs',
'appMarkers': [{
'panoId': '7oADHnGZcr',
'color': 'green',
'x': 0.1352234,
'y': -0.2600403,
'z': 0.9960099
}, {
'panoId': '8szmQ8ELKs',
'color': 'green',
'x': 0.03900146,
'y': 0.295959,
'z': 0.9169907
}]
}]
Ich möchte jedem appMarker
die folgende Formel anzuwenden und ein neues Array zurück:
(x, y, z) = (-z, y, -x) * 1000
Also tat ich dies:
function parseUnityMarkers (mockObjPanoramas) {
return mockObjPanoramas.map(mockObjPanorama => {
return mockObjPanorama.appMarkers.map(appMarker => {
const depth = 1000
appMarker.x = -appMarker.z * depth
appMarker.y = appMarker.y * depth
appMarker.z = -appMarker.x * depth
})
})
}
Allerdings bekomme ich folgendes:
Was mache ich falsch?
HINWEIS: Ich möchte ein neues Array zurückgeben, das identisch mit dem ursprünglichen ist. Aber mit den Werten von x, y und z der appMarkers
geändert.
würden Sie das ursprüngliche Objekt ändern oder ein neues unabhängiges Ergebnis zurückgeben? –
@Nina Scholz Rückgabe eines neuen Ergebnisses. Identisch wie das Original, aber mit dem Wert der "appMarkers" geändert. – alex
Ein zweiter Abschnitt hinzugefügt, der Ihre ursprünglichen Daten beibehalten sollte. – TbWill4321