2019-10-24 forEach、map不改变原数组

今天敲代码发现一个问题

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");

    },

你可能感兴趣的:(2019-10-24 forEach、map不改变原数组)