У меня есть массив как это:Как изменить значения дочерних элементов массива объектов?
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
}]
}]
Я хочу применить следующую формулу для каждого appMarker
и возвращает новый массив:
(x, y, z) = (-z, y, -x) * 1000
Так что я сделал это:
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
})
})
}
Что я делаю неправильно?
ПРИМЕЧАНИЕ: Я хочу вернуть новый массив, идентичный оригинальному. Но с изменением значений x, y и z из appMarkers
.
бы вы изменили исходный объект, или вернуть новый независимый результат? –
@Nina Scholz Верните новый результат. Идентичен, поскольку оригинал, но со значением «appMarkers» изменился. – alex
Добавлен второй раздел, который должен содержать неповрежденные исходные данные. – TbWill4321