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

    },

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容