如何更改对象数组中数组的每个值?
2019-10-25
142
基本上,我有一个对象数组。每个对象都有一个数组,我需要更改其值。
我正在使用 React,因此这是一个状态:
[
{
"points": [
60,
5,
60,
20,
70,
20,
70,
15
],
"finished": true,
"color": "#6292C6"
},
{
"points": [
80,
15,
80,
25,
90,
25
],
"finished": true,
"color": "#3FD971"
},
{
"cultureName": "",
"points": [],
"finished": false
}
]
更改此状态的
points
值的最佳方法是什么?我需要将它们乘以一个因子(4.96)。
3个回答
map
您的数组,
spread
其中的每个对象仅覆盖属性
points
(
map
将每个项目乘以因子
4.96
)
const data = [{id: 1, points: [1,2,3]}, {id: 2, points: []}]
const changedData = data.map(item =>({
...item,
points : item.points.map(value => value * 4.96)
}))
console.log(changedData)
Dupocas
2019-10-25
使用嵌套映射
const myData = [
{"points": [60,5,60,20,70,20,70,15],"finished": true,"color": "#6292C6"},
{"points": [80,15,80,25,90,25],"finished": true,"color": "#3FD971"},
{"cultureName": "","points": [],"finished": false}
]
const newArray = myData.map(elm=>{
const points = elm.points.map(point=> point*4.96)
return {...elm , points}
})
console.log(newArray)
Willman.Codes
2019-10-25
const factor = 4.96
const arrayOfObject = [] // .. here your array of objects
const modifiedArrayOfObjects = arrayOfObject.map( stats => {
const newPoints = stats.points.map(point => point * factor)
stats.points = newPoints
return stats
}
在这里我创建了一个新的对象数组,其中我将每个对象映射到一个对象,其中每个点都乘以了你的因子。
michimo
2019-10-25