V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
viiii
V2EX  ›  问与答

[javascript] [Vue] 字符串转数组问题

  •  
  •   viiii · 2021-01-17 21:06:43 +08:00 · 467 次点击
    这是一个创建于 1391 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目标字段 info.type 在数据库中是以字符串形式保存, 格式如下:
    ['元素 A', '元素 B']

    在 web 端拿到数据后, 如何再作为数组进行遍历?

    <v-btn
      outlined
      rounded
      text
      v-for="type_str in info.type"
      :key="type_str"
    >
      {{ type_str }}
    </v-btn>
    
    第 1 条附言  ·  2021-01-18 13:46:39 +08:00
    已经从后端解决了,保存进数据库的时候统一格式化为 json 字符串,比从前端进行处理简单不少
    8 条回复    2021-01-18 12:55:49 +08:00
    renmu123
        1
    renmu123  
       2021-01-17 21:18:59 +08:00 via Android
    让后端转,认真的
    horseInBlack
        2
    horseInBlack  
       2021-01-17 21:33:27 +08:00
    最好还是让后端直接存对象,或者存 JSON 字符串也行,处理也方便

    如果如楼主所说后端只返回
    '['元素 A', '元素 B']'
    这样肯定是不行的
    即使处理成 "['元素 A', '元素 B']" 也会出错
    要把字符串处理成 '["a","b","c"]' 这样才能直接使用 JSON.parse() 把字符串转换成对象,就可以直接用 v-for 循环了
    如何处理字符串就自行解决吧,或者干脆手动把字符串转换成数组、对象也可以

    template:
    <view v-for="item in type">{{item}}</view>

    data:
    type:'["a","b","c"]'

    mounted:
    this.type = JSON.parse(this.type);
    viiii
        3
    viiii  
    OP
       2021-01-17 22:59:49 +08:00 via Android
    @horseInBlack
    明白了!看来最好还是交给后端处理了,好像后端也是我🐶
    renmu123
        4
    renmu123  
       2021-01-17 23:07:38 +08:00 via Android
    @viiii 后端竟是我自己 233
    chenluo0429
        5
    chenluo0429  
       2021-01-18 09:19:32 +08:00 via Android
    这个 info.type 的来源是什么?如果可以最好是使用便于解析的格式存储,比如 JSON 或者直接特定的分隔符,不要加引号之类的多余字符。
    不然你就只能根据规律硬解析字符串了,前后端都是你,实际上谁做也没啥区别,视具体业务而定。
    guorui112
        6
    guorui112  
       2021-01-18 09:24:46 +08:00
    replace 把单引号替换成双引号也行
    DL9412
        7
    DL9412  
       2021-01-18 10:07:24 +08:00
    最狂野的写法,直接 eval 一把梭
    weixiangzhe
        8
    weixiangzhe  
       2021-01-18 12:55:49 +08:00 via Android
    不是有 filter 过滤器吗,加一个
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   960 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 20:50 · PVG 04:50 · LAX 12:50 · JFK 15:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.