javascript - 将对象数组的每个元素乘以标量
问题描述
我有一个对象数组,每个对象也包含一些数组。
我想知道如何轻松访问这些值,例如,将它们乘以一个常数。
可能需要forEach()
,我尝试这样做:
myArray = [{
income: [1, 2, 3],
outcome: [2, 3]
},
{
income: [1, 9, 8, 5],
outcome: [1, 3, 7]
},
{
income: [7, 2, 8],
outcome: [2, 6, 10]
},
];
const myValue = 2;
myArray.forEach(ob => ob.income = ob.income * myValue, ob.outcome = ob.outcome * myValue);
在这种情况下,预期的结果应该是:
myArray = [
{income: [2, 4, 6], outcome: [4, 6]},
{income: [2, 18, 16, 10], outcome: [2, 6, 14]},
{income: [14, 4, 16], outcome: [4, 12, 20]},
];
解决方案
您可以简单地使用forEach()
来迭代所有对象,而不是使用 Array.map()
来获得所需的结果。
let myArray = [
{income: [1, 2, 3], outcome: [2, 3]},
{income: [1, 9, 8, 5], outcome: [1, 3, 7]},
{income: [7, 2, 8], outcome: [2, 6, 10]},
];
const multiplyBy = 2;
myArray.forEach((obj)=>{
obj.income = obj.income.map((a)=> a*multiplyBy);
obj.outcome = obj.outcome.map((a)=> a*multiplyBy);
});
console.log(myArray);
推荐阅读
- android - 在启动时运行 Android 守护程序
- xamarin - 如何自定义窗口拍照
- go - 输出标准输入和标准输出 os.exec Golang
- android-studio - Android模拟器扩展控件不更新模拟器
- fp-ts - 替换 fp-ts 中的数组元素
- python - 将for循环值存储到python中的列表中
- swift - 搜索期间未加载搜索 Tableview
- reactjs - 如何在 React 中使用带有 Typescript 的 ContextAPI 传递和设置状态?
- java - 重用从 Server 获取的 HttpConnection 用于 HttpClient
- python - 如何在 PyQt5 中的 QVideoWidget 中旋转视频