Vue字符串查重 ,不重复的文字高亮显示

先放效果图

  • 问题拆分
    1.要改变颜色为单个字符颜色,数据格式需改变。
    2.对数组查重,获取重复元素
    3.元素对比,找出非重复元素
    4.添加对应样式

  • 改变数据格式
    因为要改变单个字符的颜色,因此每一个字符必须为一个独立块,否则无法单独改变某一个字的样式,将两个字符串相连后使用split()将字符串转为数组,通过v-for将每一个数组元素渲染出来

<span  v-for="(item,key) in textArray" :key="key">{{item}}
</span>data(){return{text1:'窗前明月光',text2:'窗前明月亮光',textArray:[],choose:[],}},changeArray() {var text3 = this.text1+this.text2this.textArray = text3.split('');},
  • 查找数组中重复的元素
    使用for循环进行textArray数组的自比,通过if判定在数组元素遇到非自己的相同元素时,将该值用push()方法添加到choose数组中,最终choose数组中存放的是所有的重复元素。
changeArray() {var text3 = this.text1+this.text2this.textArray = text3.split('');for (let i = 0; i < this.textArray.length; i++) {for (let j = 0; j < this.textArray.length; j++) {if (this.textArray[i] == this.textArray[j] && i != j) {this.choose.push(this.textArray[i])} }}},
  • 找出非重文字并添加对应的样式

IndexOf()方法可以检索数组中是否存在某元素,当存在该元素时返回该元素在数组中的位置,不存在返回-1,v-for渲染数组时,会遍历数组中的所有元素,在遍历中添加判定,如果choose数组中没有该元素就改变该元素的样式,判定方法这里使用三元表达式,如果choose.indexOf(item) >= 0条件成立,那么class为changeBlack,反之为changeRed,这样就会使非重复文字变为红色。

<span v-bind:class="[choose.indexOf(item) >= 0 ?'changeBlack':'changeRed']" v-for="(item,key) in textArray" :key="key">{{item}}<!-- 当key+1的值等于第一个字符串的长度时,实现换行 --><div v-if="key+1 == text1.length "></div>
</span>.changeBlack{color: #000;}
.changeRed {color: red;}

以下为全部代码展示

     <!-- 因为要改变的是单个字符的颜色,需要将字符串转为数组然后通过v-for渲染每一个文字元素 --><!-- [choose.indexOf(item) >= 0 ?'changeBlack':'changeRde']动态绑定样式,当item的内容与choose中的内容不匹配时,也就是choose数组中没有与之相匹配的文字时,文字为红色 --><!-- choose.indexOf(item) 当匹配成功时会返回该元素在数组中的位置,不匹配时返回-1--><span v-bind:class="[choose.indexOf(item) >= 0 ?'changeBlack':'changeRed']" v-for="(item,key) in textArray" :key="key">{{item}}<!-- 当key+1的值等于第一个字符串的长度时,实现换行 --><div v-if="key+1 == text1.length "></div></span>data(){return{//text1和text2为字符串text1:'窗前明月光',text2:'窗前明月亮光',//textArray存放的内容是将字符串转为数组后的字符元素textArray:[],//存放的内容为查重后的重复元素choose:[],}},changeArray() {//定义text3,值为text1和text2两个相连var text3 = this.text1+this.text2//将text3字符串转为数组存放到textArray中this.textArray = text3.split('');//for循环嵌套查找重复元素for (let i = 0; i < this.textArray.length; i++) {for (let j = 0; j < this.textArray.length; j++) {//textArray数组中每一个元素去与其它元素进行对比if (this.textArray[i] == this.textArray[j] && i != j) {//将对比后重复的元素插入到choose数组中this.choose.push(this.textArray[i])} }}},

Vue字符串查重 、数组查重、不重复的文字高亮显示相关推荐

  1. vue字符串列表转换数组_vue 数组对接字符串 传值时候,join(',') 一下 watch

    linux TCP: time wait bucket table overflow 早上一台rabbitmq和Java所在的服务器,客户端反馈超级卡,看io和cpu都不高.发现六七万消息挤压,临时性 ...

  2. 字符串分割成数组元素和去掉重复元素

    处理买家姓名,需要对姓名去前后空格,需要去掉重复姓名,还要计算重复姓名的次数,把买家姓名保存为数组元素,以下是参考代码: /** 功能:把字符串转换为数组,字符串用换行隔开,数组元素去掉空的.前后空格 ...

  3. guid会重复吗_知网查重会查重表格吗

    知网查重会查重表格吗?答案是肯定的.如果出现知网查重表格重复很高,那么我们一样是会进行避免查重的,通常表格在查重后会在报告中展示,如果出现重复会提示大家,我们只需要根据这个提示进行修改降低表格查重率即 ...

  4. 论文查重免费查重系统需要了解的常识

    现在很多人都有过写论文的经历. 大家 毕业时必须交毕业论文.工作之余, 大家 还要写一些学术论文.无论写哪种类型的论文,一般都需要对论文进行查重,因为只有符合查重标准的论文才是合格的论文.现在,网络上 ...

  5. 毕业论文查重的降重心得

    一.唠嗑 不知不觉已经要毕业了,总结分享一下最近几天的论文查重的降重过程~先上成果图(#^.^#) 第一次查重:o(╥﹏╥)o 目前结果:(* ̄︶ ̄)  二.技巧总结 经过了我抓耳挠腮的努力,终于把查 ...

  6. 【学习经验分享NO.15】本科硕士学位论文和学术论文查重及降重方法

    文章目录 前言 一.查重方法 1.查重指标的含义 2.查重方法 二.如何修改论文重复 三.常见问题答疑 总结 前言 学术小论文以及本科和硕士大论文在发表前需要进行降重处理,不然重复率过高会影响论文的发 ...

  7. 论文查重会查哪些内容?

    网络科技的飞速发展给我们的生活带来了不小的便利,也带来了一些麻烦,现在不管是网站还是自己写文章,愿意原创的人越来越少,基本上都是抄袭或者直接采集,论文就是抄袭的重灾区.针对这一情况,各高校也出台了一系 ...

  8. 论文查重会查图表吗?

    大学里有很多专业,不同的专业他写论文所涉及的一些方面也不一样.许多人在写论文时,由于要深入研究,有些还需要进行相关的实验.因此说在毕业论文中会插入一些图片和表格.尤其对理科专业的人来说,图表在他们的论 ...

  9. 论文查重是查哪些部分?

    论文查重是查哪些部分?论文有相同的情况经常有,如果重复了就要重新阅读资料在修改,修改之后还有查重,这个就比较麻烦了,可以用手机迅捷论文查重来查重的,这样效果也比较好. 查重方法: 1.在手机市场里面找 ...

最新文章

  1. TypeError: sequence item 1: expected str instance, int found
  2. python 彩票 遗漏值_荐Python遗漏知识点一
  3. 走向REST:在Spring和JAX-RS(Apache CXF)中嵌入Jetty
  4. uva 10635 Prince and Princess(LCS成问题LIS问题O(nlogn))
  5. 现代版马拉火车!蔚来出动燃油板车运送充电车服务
  6. 一个防御SQL注入攻击需要注意的问题
  7. 1228. Crashing Robots
  8. 王垠系列博文(题名外挂URL)
  9. mysql添加语句_Mysql中插入数据语句
  10. wind7计算机控制面板在哪,Win7控制面板在哪打开|win7打开控制面板的小技巧
  11. KGB知识图谱开创技术应用新渠道
  12. JScript 06 根据成绩平均分划分等级
  13. 实现表格内容第一行居中,其他行与第一行左对齐
  14. Python切片工具 pillow
  15. kubeadmin安装高可用k8s集群
  16. Android Proguard 不混淆所有第三方jar(忽略配置设置)
  17. linux 禁用cpu的acpi,Linux中的ACPI和APIC
  18. 2.5 矩阵因式分解(第2章矩阵代数)
  19. div+CSS实现段落首行缩进两个字符(text-indent标签)
  20. 在路由器上Ez***的应用配置

热门文章

  1. 司普沃浅谈油麦菜高产种植技术+管理要点
  2. 深度学习 情感分析_使用深度学习进行情感分析
  3. 手机端如何阻止苹果浏览器输入框默认放大事件
  4. (三)拨开生活中的数字迷雾,警惕图表的陷阱
  5. C语言中的while的意思,C语言中while是什么意思
  6. 《我是歌手》网上报名评审
  7. Java什么是对象?
  8. 大数据方面的核心技术
  9. 人才召集丨美团信息安全部 “职 ”等你来
  10. 微信联盟链接不到服务器怎么,LOL微信绑定方法及无法登录处理方案推荐