js(javascript)中关于查找与替换常用的实用方法
admin
2024-04-01 10:28:53
0

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

文章目录

  • js(javascript)中关于查找与替换常用的实用方法
    • 判断有无
      • 判断某字符串内是否含有某个字符或者字符串
      • 判断某数组内是否含有某个字符串
    • 查找
      • 在数组对象中寻找某个item的value等于某值的item
    • 替换
      • 替换某个字符串中的某些字符为其他字符
      • 替换某个数组对象中的某些键名为指定的键名

判断有无

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

例:在“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()

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

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()

查找

在数组对象中寻找某个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, 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 : ''}
}
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)//李斯

替换

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

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

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

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

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

let json = [{name: '张三',id:'1'},{name: '李斯',id:'2'},{name: '旺屋',id:'3'},
]
// 转换后的结果let json = [{label: '张三',value:'1'},{label: '李斯',value:'2'},{label: '旺屋',value:'3'},
]
let data = JSON.parse(JSON.stringify(json).replace(/"name"/g, '"label"'))
data = JSON.parse(JSON.stringify(data).replace(/"id"/g, '"value"'))
console.log(data)
// 注意:这种方法可以替换多层数据

相关内容

热门资讯

摩根士丹利中国首席经济学家邢自... 7月8日消息,“共筑生态 前海领航——前海2026 ETF生态创新与高质量发展论坛”在深圳举行。摩根...
全球芯片LOF:将于7月9日开... 7月8日消息,景顺长城基金管理有限公司公告,近期旗下景顺长城全球半导体芯片产业股票型证券投资基金(Q...
腾讯控股:7月8日回购2.76... 7月8日消息,腾讯控股在港交所公告,公司于7月8日回购2.76万股股份,耗资约1273万港元。(公司...
对质量安全问题多发频发产品加大... 7月8日消息,为进一步加强产品质量安全监管,健全完善产品质量监督抽查制度,市场监管总局对《产品质量监...
亿田智能:子公司拟不超5.5亿... 7月8日消息,亿田智能公告,公司全资子公司甘肃亿算智能科技有限公司根据经营发展需要,拟向多家供应商采...
吕特称美国对北约盟友不满是“孤... 北约秘书长吕特8日表示,美国对北约盟友在伊朗问题上的不满仅为“孤立事件”。 吕特当天在土耳其首都安卡...
【自身建设】福贡大队架科底所庆... 为热烈庆祝中国共产党成立105周年,深入学习贯彻正确政绩观,深化警村党建联建共治,7月1日,架科底边...
英国加强线上博彩监管 英国金融... 据英国《金融时报》7月8日报道,英国博彩监管机构为加强对高额线上博彩用户的风险管理,拟要求博彩企业针...
富德产险举牌算力基础设施服务商... 7月8日,富德财产保险股份有限公司(下称富德产险)发布的公告显示,富德产险及其一致行动人深圳市富德科...
租客在房内触电身亡,房东赔偿5... 租赁合同中写明“安全事故由承租方承担全部责任”,房东就能不担责吗?据浙江省委政法委公众号“平安鼎”7...