Map类型取代多项if-else执行

      map类型其实就是键值对的形式,每一个函数或者每一个对象对应一个特殊的键值,通过key,value的形式来调用不同的函数并执行不同的操作。

 //定义复用对象
        const requestTiber = {
          mater: () => {
            materialgetDatalist(this.dataForm).then((res) => restiber(e, res, materialTable));
          },
          export: () => {
            expertbaseFunction.getDatalist(this.dataForm).then((res) => {
              return restiber(e, res, expertTable);
            });
          },
          person: () => {
            personbaseFunction.getDatalist(this.dataForm).then((res) => restiber(e, res, personTable));
          },
          car: () => {
            carbaseFunction.getDatalist(this.dataForm).then((res) => restiber(e, res, carTable));
          },
          team: () => {
            teambaseFunction.getDatalist(this.dataForm).then((res) => restiber(e, res, teamTable));
          },
          gover: () => {
            governmentplanbaseFunction.getDatalist(this.dataForm).then((res) => {
              res.data.list.map((item: any) => {
                item.planType == 1 ? (item.planType = "综合预案") : item.planType == 2 ? (item.planType = "专项预案") : (item.planType = "应急预案");
              });
              restiber(e, res, governmentplanTable);
            });
          },
          house: () => {
            housebaseFunction.getDatalist(this.dataForm).then((res) => restiber(e, res, houseTable));
          },
          fire: () => {
            facilitiesbaseFunction.getDatalist(this.dataForm).then((res) => restiber(e, res, facilitiesTable));
          },
          shelter: () => {
            emergencyShelterbaseFunction.getDatalist(this.dataForm).then((res) => restiber(e, res, emergencyShelterTable));
          },
          unit: () => {
            unitbaseFunction.getDatalist(this.dataForm).then((res) => restiber(e, res, unitTable));
          }
        };
//定义复用Map类型集合
const emeus = new Map([
                ['应急物资', requestTiber.mater],
                ['应急专家', requestTiber.export],
                ['应急人员', requestTiber.person],
                ['应急车辆', requestTiber.car],
                ['应急队伍', requestTiber.team],
                ['应急预案', requestTiber.gover],
                ['应急仓库', requestTiber.house],
                ['消防设施', requestTiber.fire],
                ['避难场所', requestTiber.shelter],
                ['应急机构', requestTiber.unit],
            ]);
            emeus.get(e)();
这样我们可以根据Map类型动态调用对象中的属性函数,来执行不同的操作.例如e == "应急人员",则会执行requestTiber.person();

Map类型常见方法

Map.set( key , value )( 新增键值对 )

Map.get(  key )( 通过键值来获取对应值 ,如果值是函数,直接map.get(key)(),即可调用)

Map.has( key )( 判断某一个key值是否有对应的value属性 ,成功返回true,失败返回false)

Map.delete( key )( 通过key值来删除对应map数组,成功返回true,失败返回false )

Map.clear( map对象 )( 清除此map对象下的所有键值对 )

Map.forEach( ( item,key,maps )=>{  item为value,key为key,maps为map对象  } )( 遍历 )

文章链接:http://iwebg.cn/index.php/2023/07/21/map%e7%b1%bb%e5%9e%8b%e5%8f%96%e4%bb%a3%e5%a4%9a%e9%a1%b9if-else%e6%89%a7%e8%a1%8c/

版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇