js 遍历对象,检查是否有为空,为空添加数据

4 篇文章 0 订阅
          let orderStatistics = {'20220701':{'维修':[{name: 1}]},'20220702': null,'20220703': null,'20220704':{'维修':[],'保养':[{name: 4}]}}
          let res = isNulArr(orderStatistics);
          console.log(res)

    function isNullArr(datas){
        //   遍历对象
          for(let key in datas){
            // 将null进行赋值操作
            if(datas[key] == null){
                datas[key] = {'交机':[],'海外_维修': [],'巡检': [],'维修': [],'保养': [],'技改': [],'召请': []}
            }
           
          }
      return datas
  }
只查找已有的数据
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      function isNullArr(datas,arr) {
        console.log(nameList)
        //   遍历对象
        for (let key in datas) {
          // 将null进行赋值操作
          if (datas[key] == null) {
            let object = {}
            nameList.forEach((item,o)=>{
              object[item] = []
            })
            datas[key] = object
          }
        }
        return datas;
      }

      let orderStatistics = {
        20220701: { 维修: [{ name: 1 }] },
        20220704: { 维修: [], 保养: [{ name: 4 }] },
        20220705: null,
      };
  

      let dateList = [];
      let nameList = [];
  

      for (var date in orderStatistics) {
        // console.log(date)
        dateList.push(date);
      }
      dateList.forEach((item) => {
        for (var date in orderStatistics[item]) {
          if (nameList.indexOf(date) == -1) {
            nameList.push(date);
          }
        }
      });

      let res = isNullArr(orderStatistics, nameList);
      // console.log(nameList);
      console.log(res)

  

      let s = {};
      nameList.forEach((items) => {
        s[items] = [];
        dateList.forEach((item, index) => {
          s[items].push(res[item][items] ? res[item][items].length : 0);
        });
      });
      console.log(s);
      let zhuArr = []
      // 自定义柱状图颜色
      for (var name in s) {
            zhuArr.push({
              name: name,
              type: 'bar',
              barWidth: 5,
              stack: 'Search Engine',
              emphasis: {
                focus: 'series'
              },
              itemStyle: {//自定义颜色
                normal: { color: { '交机': '#2D9AFF', '海外': '#FF939A', '巡检': '#86E2B6', '维修': '#B8A3FB', '保养': '#F9D010', '技改': '#3CB371', '召请': '#00FF00', }[name] },
              },
              data: s[name]
            })
          }
    </script>
  </body>
</html>

补全全部数据
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      function isNullArr(datas) {
        let objectArr = {
          交机: [],
          海外: [],
          巡检: [],
          维修: [],
          保养: [],
          技改: [],
          召请: [],
        };
        //   遍历对象
        for (let key in datas) {
          // 将null进行赋值操作
          if (datas[key] == null) {
            datas[key] = {
              交机: [],
              海外: [],
              巡检: [],
              维修: [],
              保养: [],
              技改: [],
              召请: [],
            };
          } else {
            datas[key] = { ...objectArr, ...datas[key] };
            // console.log(datas[key])
          }
        }
        return datas;
      }

      let orderStatistics = {
        20220701: { 维修: [{ name: 1 }] },
        20220704: { 维修: [], 保养: [{ name: 4 }] },
        20220705: null,
      };
      let res = isNullArr(orderStatistics);
      console.log(res);

      let dateList = [];
      let nameList = [];

      for (var date in res) {
        // console.log(date)
        dateList.push(date);
      }
      dateList.forEach((item) => {
        for (var date in res[item]) {
          if (nameList.indexOf(date) == -1) {
            nameList.push(date);
          }
        }
      });

      let s = {};
      nameList.forEach((items) => {
        s[items] = [];
        dateList.forEach((item, index) => {
          s[items].push(res[item][items] ? res[item][items].length : 0);
        });
      });
      console.log(s);
      let zhuArr = []
      // 自定义柱状图颜色
      for (var name in s) {
            zhuArr.push({
              name: name,
              type: 'bar',
              barWidth: 5,
              stack: 'Search Engine',
              emphasis: {
                focus: 'series'
              },
              itemStyle: {//自定义颜色
                normal: { color: { '交机': '#2D9AFF', '海外': '#FF939A', '巡检': '#86E2B6', '维修': '#B8A3FB', '保养': '#F9D010', '技改': '#3CB371', '召请': '#00FF00', }[name] },
              },
              data: s[name]
            })
          }
    </script>
  </body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值