vue如何把传过来的字符串变为数组然后专汉字

问题描述

我想让他转成汉字回显在页面中,如何实现呀

clipboard.png

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

 let frequencyValue = [];
      if (this.addRuleForm.frequencyStatus === 1) {
        this.addRuleForm.frequencyValue.forEach((ele, i) => {
          weekOptions.forEach((val, i) => {
            if (ele == val) {
              frequencyValue.push(i + 1);
              if (ele == 1) {
             this.addRuleForm.frequencyValue.push("一");

              }
              if (ele == 2) {
                this.addRuleForm.frequencyValue.push("二");
              }
              if (ele == 3) {
                this.addRuleForm.frequencyValue.push("三");
              }
              if (ele == 4) {
                this.addRuleForm.frequencyValue.push("四");
              }
              if (ele == 5) {
                this.addRuleForm.frequencyValue.push("五");
              }
              if (ele == 6) {
                this.addRuleForm.frequencyValue.push("六");
              }
              if (ele == 7) {
                this.addRuleForm.frequencyValue.push("七");
              }
            }
          });
        });
      } 
      

为什么这样不行

你期待的结果是什么?实际看到的错误信息又是什么?

阅读 4.6k
3 个回答
 let str= '1,3,4,5'
 let data = [{key: 1, value: '一'}, {key: 2,value: '二'}, { key: 3, value: '三'}, {key: 4,value: '四'},{ key: 5, value: '五'},]

  let newArr = str.split(',').reduce((arr, item) => {
        data.map(x => {
          if (item == x.key) {
            item = x.value
            arr.push(item)
          }
        })
        return arr
      }, [])
      console.log(str);// '1,3,4,5'
      console.log(newArr);// ["一", "三", "四", "五"]
      
       

这样你就得到newArr,你把新数组挂载到vue上,然后正常调用就可以了
补充如何挂载:

<span v-for="(item, index) in addRuleForm.frequencyValue" :key="index">{{item}}</span>

  data() {
      return {
        addRuleForm:{
          'frequencyValue':[]
        },
       }
      }
      
 this.addRuleForm.frequencyValue = str.split(',').reduce((arr, item) => {
        data.map(x => {
          if (item == x.key) {
            item = x.value
            arr.push(item)
          }
        })
        return arr
      }, [])
      console.log(str);
      console.log(this.addRuleForm.frequencyValue);
let relation = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九']

function numberToChinese(str) {
    return str.replace(/\d/g, d => relation[d])
}

console.log(numberToChinese('452535345'))
// 四五二五三五三四五

function numberToChinese(str) {
    return str.replace(/\d/g, d => relation[d])
}

console.log(numberToChinese('452535345'))

// 四五二五三五三四五

推荐问题