gpt4 book ai didi

javascript - ES6 更改为 API 请求中的固定值

转载 作者:行者123 更新时间:2023-12-01 00:24:34 26 4
gpt4 key购买 nike

如何更改对象的值以使用固定值,就像我对 console.log 所做的那样?

fetchData = () => {
axios.get(fullAPI).then(res => {
const apiResponse = res.data
apiResponse.forEach(employee => console.log('test', employee.value.toFixed(2)))
apiResponse.forEach(employee => employee.value.toFixed(2))
console.log('raw data', apiResponse)
this.setState({
employeeData: apiResponse,
})
})
}

test 4.41
test 5.00
test 6.16
test 0.79

raw data
(10) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}]
0: {name: "Animals", value: 4.41361634}
1: {name: "Environment", value: 5.004498622999998}

最佳答案

您的代码的错误在于您只是格式化了 value 数字并将其返回到 forEach (对这些信息没有任何作用)。

您必须修改原始对象。

fetchData = () => {
axios.get(fullAPI).then(res => {
const apiResponse = res.data;
apiResponse.forEach(employee => {
employee.value = employee.value.toFixed(2); // Note we are attributing the fixed value to the value itself, modifying the object
});
console.log('raw data', apiResponse)
this.setState({
employeeData: apiResponse
})
})
}

请注意,这是有效的,因为 JavaScript 始终使用对象的引用(如 C 中的指针),因此即使不返回对象,您也会更改它的属性,并且它将反射(reflect)在原始数组上。

IMO 对于没有经验(也有经验)的程序员来说更具可读性,使用 Array.map()相反,因为它会清楚地表明您正在修改对象并更新数组:

fetchData = () => {
axios.get(fullAPI).then(res => {
const apiResponse = res.data;
apiResponse.map(employee => {
employee.value = employee.value.toFixed(2)
return employee;
});
console.log('raw data', apiResponse)
this.setState({
employeeData: apiResponse
})
})
}

两个代码都会做同样的事情,可能没有性能差异,只是可读性不同。

关于javascript - ES6 更改为 API 请求中的固定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59130411/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com