js 對象字典(key vlaue映射)


 
 const snTableData = this.snTableData;
snTableData 結構如下:

 

 現在需要做成字典映射的形式,格式如下:

 

 

前提: calDict就是dyn_cal_group_info_dict,之前邏輯處理了不用關心這個。

      let obj1 = {};
      //遍歷對象的key value
      for (let i in snTableData) {
        const calDict = snTableData[i].calDict;//找到每個對象的calDict 屬性,該屬性是個對象
        const keys = Object.keys(calDict);//遍歷出該對象所有的key,返回一個數組形式。
        for (let key of keys) {
          if (obj1[key]) { // 以后每次循環進這里。
    //根據id去重
            const obj1Ids = obj1[key].map((item) => item.id);
            if (obj1Ids.includes(calDict[key].id)) {
              continue;
            }
            obj1[key].push(calDict[key]);
          } else { // 第一次進這里
            obj1[key] = [calDict[key]];
          }
        }
      }
 
打印結果如下:

 

補充:循環生成多個下拉

<el-form-item label="請選擇校准組(非必選):">
          <el-select
            v-model="checkList[index]"
            placeholder="請選擇校准組"
            v-for="(item, index) in itemT"
            :key="index"
            @change="setCalValue"
            clearable
          >
            <el-option
              v-for="item1 in calDatas[item]"
              :key="item1.id"
              :label="item1.name"
              :value="item1.id"
            >
            </el-option>
          </el-select>
        </el-form-item>

 data數據:

calDatas: {},
checkList: [],

js:

接上面的 邏輯:
this.itemT = Object.keys(obj1);
this.checkList=Array(this.itemT.length).fill('')
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM