循环forEach坑,复杂数据类型处理,一人血书,求解决的方法!!!!!!

一人血书,求解决的方法!!!!!!

背景
现在就是color颜色再打印出来的结构所有的对象头赋值最后一个数值了,原因估计是运行循环的时候item.itemStyle.color已经是三级层级了,循环的时候没有封闭暂时性区域,导致最后循环出来的效果color都变一一样的值了,这个方法怎么解决!!!!!求解

        let styleL={
            stack: "",
            symbol: 'circle',//折线点设置为实心点
            symbolSize: 12,   //折线点的大小
            smooth: true,
            itemStyle: {
                color: '',
                shadowColor: '',
                shadowBlur: 9.5,
            },
            lineStyle: {
                width: 4,
                shadowColor: "",
                shadowOffsetX: 0,
                shadowOffsetY: 0,
                opacity: 1,
                shadowBlur: 8,
                type: "solid"
            },
            type: "line"
        }
        let color=[
            {
                colorO:'#95CACA',
                colorT:'#5CADAD',
            },
            {
                colorO:'#FFEBCD',
                colorT:'#FFE4B5',
            },
            {
                colorO:'#53868B',
                colorT:'#00E5EE',
            },
            {
                colorO:'#6A5ACD',
                colorT:'#7B68EE',
            },
            {
                colorO:'#AFEEEE',
                colorT:'#40E0D0',
            },
            {
                colorO:'#FF00FF',
                colorT:'#DA70D6',
            },
        ]
        let arr=[
        {data: [40,60,20,70,60,70,10,],
        name: "幸福路",
        },
        {data: [20,30,20,70,60,100,30,],
        name: "职教",
        },
        {data: [50,10,53,56,10,110,60,],
        name: "绿湾"},
        {data: [80,19,43,66,18,30,65,],
        name: "西区"},
        {data: [53,30,83,58,18,80,63,],
        name: "北区"},
      ]
      newArr=[];
      arr.forEach((item,index,arr)=>{
          for(let key in styleL){
            item[key]=styleL[key]
          }
          item.itemStyle.color=color[index].colorO
          item.itemStyle.shadowColor=color[index].colorT
          item.lineStyle.shadowColor=color[index].colorO
          console.log(item,'--',index,'---------forEach')
      })
      console.log(arr,'------处理后结果')

结果:
运行结果

所提供的引用内容中未提及MyBatis中foreach标签结合not in和!=使用时的效率对比情况。不过,可以从原理上进行定分析。 当使用foreach标签结合not in时,MyBatis会将集合中的元素动态拼接成个SQL的not in子句。例如: ```xml <select id="selectNotIn" parameterType="list" resultType="com.pojo.Entity"> SELECT * FROM table_name WHERE column_name NOT IN <foreach collection="list" item="item" open="(" separator="," close=")"> #{item} </foreach> </select> ``` 在数据库执行时,对于not in子句,数据库需要检查每行记录的指定列是否不在给定的集合中。如果集合元素较多,数据库可能需要进行大量的比较操作,并且可能无法很好地利用索引,尤其是当集合元素无序时,会导致查询效率下降。 当使用foreach标签结合!=时,MyBatis会将集合元素动态拼接成多个!=条件。例如: ```xml <select id="selectNotEqual" parameterType="list" resultType="com.pojo.Entity"> SELECT * FROM table_name WHERE <foreach collection="list" item="item" separator=" AND "> column_name != #{item} </foreach> </select> ``` 使用多个!=条件时,数据库同样需要对每行记录进行多次比较。如果集合元素较多,SQL语句会变得很长,而且数据库优化器在处理大量!=条件时可能也会面临挑战,效率也可能受到影响。 般来说,当集合元素较少时,两者的效率差异可能不明显。但随着集合元素数量的增加,not in可能因为次性比较集合元素,在某些数据库中会有定的优化机制;而多个!=条件会让SQL语句变得复杂,可能导致数据库优化器难以有效优化,此时not in的效率可能相对较高。然而,具体的效率情况还与数据库的类型、版本、表结构、索引使用等多种因素有关。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值