如何对Javascript/vuejs中的两个相似对象求和
我有一个对象,我需要将每个如何对Javascript/vuejs中的两个相似对象求和,javascript,vue.js,object,Javascript,Vue.js,Object,我有一个对象,我需要将每个值分别与另一个类似对象求和,如本例所示: CharacterStats: { a: 0, b: 2, c: 0, d: 0 } ItemStats: { a: 0, b: -1, c: 4, d: 0 } 结果应该是 CharacterStats: { a: 0, b: 1, c: 4, d: 0 } 我找到了这个答案,但我使用的是vueJS,所以我的函数看起来像这样: export default { data () { return {
值
分别与另一个类似对象求和,如本例所示:
CharacterStats: { a: 0, b: 2, c: 0, d: 0 }
ItemStats: { a: 0, b: -1, c: 4, d: 0 }
结果应该是
CharacterStats: { a: 0, b: 1, c: 4, d: 0 }
我找到了这个答案,但我使用的是vueJS,所以我的函数看起来像这样:
export default {
data () {
return {
CharacterStats: { a:0, b:0, c:0, d:0 }
};
},
methods: {
calculStatsItems(ItemsStats) {
var obj = {};
Object.keys(this.CharacterStats ).forEach(function(a){
obj[a] = this.CharacterStats.stat[a] +ItemsStats[a]
})
console.log(obj);
}
},
}
但我总是在这条线上告诉我“这是未定义的”时出错:
Object.keys(this.CharacterStats ).forEach(function(a)
是否有其他方法来执行或修复此操作?您可以获取这两个对象的值,然后执行以下操作:
sum(values) {
return values.reduce((a, b) => a + b, 0);
}
calculStatsItems(arr1, arr2) {
const prepareData = [...Object.values(arr1), ...Object.values(arr2)];
return this.sum(prepareData);
}
在
.forEach
函数中,此
不引用vue
组件实例,因此CharacterStats
变为未定义
。试试这个:
constcharacterstats={a:0,b:2,c:0,d:0};
constitemstats={a:0,b:-1,c:4,d:0};
新Vue({
el:“应用程序”,
数据:()=>({
CharacterStats:{a:0,b:2,c:0,d:0}
}),
创建(){
this.calculStatsItems({a:0,b:-1,c:4,d:0});
},
方法:{
Calculstats(项目状态){
常量obj={};
Object.keys(this.CharacterStats).forEach(a=>{
obj[a]=this.CharacterStats[a]+(ItemsStats[a]| | 0)
});
控制台日志(obj);
}
}
});代码>
这是否回答了您的问题?我只采用了这个方法,效果非常好!非常感谢不客气<代码>箭头功能
解决了该问题。