• js(javascript)中关于查找与替换常用的实用方法


    js(javascript)中关于查找与替换常用的实用方法

    判断有无

    判断某字符串内是否含有某个字符或者字符串

    例:在“hello,world” 里面是否有el

    let str = "hello,world", str1 = 'l'
    let idx=str.indexOf(str1)
    if(idx!==-1){
      console.log('字符串'+str+'内存在'+str1+',下标位置为:'+idx)
    } else {
        console.log('字符串'+str+'内未找到'+str1)
    }
    // 如果有多个时,会返回第一个字符(串)所在的位置
    // 如果要找到最后一个,可以使用 lastIndexOf()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    判断某数组内是否含有某个字符串

    let arr = ["hello","world","china","beautiful"], obj = 'world'
    let idx=arr.indexOf(obj)
    if(idx!==-1){
      console.log('字符串'+arr+'内存在'+obj+',下标位置为:'+idx)
    } else {
        console.log('字符串'+arr+'内未找到'+obj)
    }
    // 如果有多个时,会返回第一个字符(串)所在的位置
    // 如果要找到最后一个,可以使用 lastIndexOf()
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    查找通过某值查找某值

    数组对象中寻找某个item的value等于某值的item

    /**
     * 通过某个值找出其所在的item对象
     * @list 数组对象
     * @inKey 需要作为条件的key键
     * @inVal 需要作为条件的key值
     * @outVal 需要返回的结果的key键
     * 举例:在json中找id==2的name 
     * inKey='id'
     * inVal='2'
     * outVal='name'
     * 
     * let json = [
        {
            name: '张三',
            id:'1'
        },
        {
            name: '李斯',
            id:'2'
        },
        {
            name: '旺屋',
            id:'3'
        },
    ]  
     **/
    findItemFromKey = function (list, inKey, inVal, outKey) {
        if ((!list) || list.length == 0) {
            console.error('数组对象不能为空')
    		return '';
    	}
        if (!(list instanceof Array)) {
            console.error('数组对象必须是数组')
    		return '';
    	}
        if (inKey == undefined || inKey == null) {
            console.error('被寻找键不能为空')
    		return '';
    	}
    	if (inVal == undefined || inVal == null) { //此处可能会有0值
            console.error('被寻找键值不能为空')
    		return '';
    	}
    	let data = list.find((item) => {
    		return item[inKey] == inVal
        })
        if (outKey) {
            return data ? data[outKey] : ''
        } else {
            return data ? data : ''
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    let json = [
        {
            name: '张三',
            id:'1'
        },
        {
            name: '李斯',
            id:'2'
        },
        {
            name: '旺屋',
            id:'3'
        },
    ]  
    let out = findItemFromKey(json, 'id', 2)
    console.log(out)//{ name: '李斯', id: '2' }
    let out1 = findItemFromKey(json, 'id', 2,'name')
    console.log(out1)//李斯
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    替换

    替换某个字符串中的某些字符为其他字符

    例:将hello,world内所有的l替换为#

    let str = "hello,world"
    str=str.replace(/l/gi, '#')
    console.log(str)
    // 注意,replace 不改变原来字符串,返回的是新的字符串,所以为了操作方便需要重新赋值,也可以直接返回得到的新值
    
    • 1
    • 2
    • 3
    • 4

    替换某个数组对象中的某些键名为指定的键名

    例:将后台返回的如下数据,转为我们需要的label+value结构

    let json = [
        {
            name: '张三',
            id:'1'
        },
        {
            name: '李斯',
            id:'2'
        },
        {
            name: '旺屋',
            id:'3'
        },
    ]
    // 转换后的结果
    
    let json = [
        {
            label: '张三',
            value:'1'
        },
        {
            label: '李斯',
            value:'2'
        },
        {
            label: '旺屋',
            value:'3'
        },
    ]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    let data = JSON.parse(JSON.stringify(json).replace(/"name"/g, '"label"'))
    data = JSON.parse(JSON.stringify(data).replace(/"id"/g, '"value"'))
    console.log(data)
    // 注意:这种方法可以替换多层数据
    
    • 1
    • 2
    • 3
    • 4
  • 相关阅读:
    锁策略与CAS
    【etcd】go etcd实战一:etcd基本使用
    Prompt Learning : Prefix Tuning
    Linux 安装 ElasticSearch
    投资理财知识分享:100个金融知识专业术语
    java计算机毕业设计家电产品售后MyBatis+系统+LW文档+源码+调试部署
    C++与C的区别终于说清楚了!
    ITIL是什么?
    深入浅出PyTorch——主要模块和基础实战
    前后端分离:停车管理系统(Java后端,vue前端)
  • 原文地址:https://blog.csdn.net/weixin_42708208/article/details/127480922