今天敲代码发现一个问题
this.scoreRuleData是一个数组,obj参数是一个对象,当他们名称相等的时候进行赋值
tableList(obj) {
this.scoreRuleData.forEach(item =>{
if(item.field_name === obj.field_name){
item = obj;
}
});
console.log(this.scoreRuleData,"smyyy");//但是这里的数组是没有任何改变的
}
这是因为forEach是没有返回值并且不直接改变原数组的,如果要改变 ,可以这样
tableList(obj) {
this.scoreRuleData.map(item =>{
if(item.field_name === obj.field_name){
item.value_min = obj.value_min;
item.value_max = obj.value_max;
item.mark_min = obj.mark_min;
item.mark_max = obj.mark_max;
item.weight = obj.weight;
}
});
// console.log(this.scoreRuleData,"smyyy");
},