前端如何在接口返回字符串类型的数值转化在浏览器中转化为对应文字并且逗号隔开

Posted coderkey

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端如何在接口返回字符串类型的数值转化在浏览器中转化为对应文字并且逗号隔开相关的知识,希望对你有一定的参考价值。

一,问题

后端接口中返回字符串类型的数值如何转化在浏览器中转化为对应文字用逗号隔开
0代表微信 1代表QQ 2代表邮件 3代表语音


二,方法

第一步:假设后端返回的数据

      // 假设是后端返回的数据
      typeData: [
        
          enableTypes: "0,1",
          id: "100001",
          user: "张三",
        ,
        
          enableTypes: "1,2",
          id: "100002",
          user: "李四",
        ,
        
          enableTypes: "2,3",
          id: "100003",
          user: "王五",
        ,
        
          enableTypes: "0,3",
          id: "100004",
          user: "赵六",
        ,
      ],

第二步:映射类型 定义一个数组

 // 映射
      typeMap: [
        
          value: "微信",
          type: 0,
        ,
        
          value: "QQ",
          type: 1,
        ,
        
          value: "邮箱",
          type: 2,
        ,
        
          value: "语音",
          type: 3,
        ,
      ],

第三步:数据处理写在计算属性里

 // 计算属性
  computed: 
    getTypeData() 
      console.log(444);
      return (str) => 
        return String(str.split(",").map((item) => this.typeMap[item].value));
      ;
    ,
  

第四步:模板展示

<template>
  <div class="home">
    <table class="pure-table pure-table-bordered">
      <thead>
        <tr>
          <th>#</th>
          <th>信息类型</th>
        </tr>
      </thead>

      <tbody v-for="(item, index) in typeData" :key="index">
        <tr>
          <td> item.id </td>
          <!-- <td> item.enableTypes</td> -->
          <td> getTypeData(item.enableTypes) </td>
        </tr>
      </tbody>
    </table>
  </div>
</template>

第五步:测试结果

处理前

处理后


三,完整测试代码

<template>
  <div class="home">
    <table class="pure-table pure-table-bordered">
      <thead>
        <tr>
          <th>#</th>
          <th>信息类型</th>
        </tr>
      </thead>

      <tbody v-for="(item, index) in typeData" :key="index">
        <tr>
          <td> item.id </td>
          <td> item.enableTypes</td>
          <!-- <td> getTypeData(item.enableTypes) </td> -->
        </tr>
      </tbody>
    </table>
  </div>
</template>

<script>
import HelloWorld from "@/components/HelloWorld.vue";

export default 
  name: "HomeView",
  components: 
    HelloWorld,
  ,
  data() 
    return 
      // 假设是后端返回的数据
      typeData: [
        
          enableTypes: "0,1",
          id: "100001",
          user: "张三",
        ,
        
          enableTypes: "1,2",
          id: "100002",
          user: "李四",
        ,
        
          enableTypes: "2,3",
          id: "100003",
          user: "王五",
        ,
        
          enableTypes: "0,3",
          id: "100004",
          user: "赵六",
        ,
      ],
      // 映射
      typeMap: [
        
          value: "微信",
          type: 0,
        ,
        
          value: "QQ",
          type: 1,
        ,
        
          value: "邮箱",
          type: 2,
        ,
        
          value: "语音",
          type: 3,
        ,
      ],
    ;
  ,
  // 计算属性
  computed: 
    getTypeData() 
      console.log(444);
      return (str) => 
        return String(str.split(",").map((item) => this.typeMap[item].value));
      ;
    ,
  ,
;
</script>
<style scoped>
html 
  font-family: sans-serif;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;


body 
  margin: 10px;

table 
  border-collapse: collapse;
  border-spacing: 0;

tr 
  border-bottom: 1px solid #cbcbcb;

td,
th 
  padding: 0;


.pure-table 
  border-collapse: collapse;
  border-spacing: 0;
  empty-cells: show;
  border: 1px solid #cbcbcb;


.pure-table caption 
  color: #000;
  font: italic 85%/1 arial, sans-serif;
  padding: 1em 0;
  text-align: center;


.pure-table td,
.pure-table th 
  border-left: 1px solid #cbcbcb;
  border-width: 0 0 0 1px;
  font-size: inherit;
  margin: 0;
  overflow: visible;
  padding: 0.5em 1em;


.pure-table thead 
  background-color: #e0e0e0;
  color: #000;
  text-align: left;
  vertical-align: bottom;


.pure-table td 
  background-color: transparent;

.pure-table-bordered td 
  border-bottom: 1px solid #cbcbcb;


.pure-table-bordered tbody > tr:last-child > td 
  border-bottom-width: 0;

</style>

以上是关于前端如何在接口返回字符串类型的数值转化在浏览器中转化为对应文字并且逗号隔开的主要内容,如果未能解决你的问题,请参考以下文章

将PB中的枚举型转化数值型

前端乱煮之javascript学习笔记二

PHP当中如何将数组当中的字符串数据类型转化为数值类型?

前后端数据交互中的特殊字符

在labview中如何将16进制字符串数组转化为十进制数值数组?

http请求400错误