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)
// 注意:这种方法可以替换多层数据

相关内容

热门资讯

【美媒披露美军武器库存吃紧,政... 【美媒披露美军武器库存吃紧,政府拟动员车企增产武器】据美国《华尔街日报》4月15日披露,由于俄乌冲突...
“特朗普如此命令以色列停火,换... 【文/观察者网 熊超然】 虽然黎以为期10天的停火协议于当地时间4月16日生效,但美国方面一度“认...
停火前最后一刻,以色列炸死黎巴... 黎巴嫩和以色列之间达成的为期10天的停火协议已于当地时间4月17日零时生效。然而,据英国路透社报道,...
中东战火正在绞杀你的工资和饭碗 文︱陆弃 有个真相,没几个人敢明着说——中东那摊子事,早不是单纯的地区冲突了。 它就像一只隐形的手,...
霍尔木兹海峡对商船开放通行,国... 伊朗外长17日表示,霍尔木兹海峡在黎巴嫩与以色列停火期间对所有商船通行完全开放,国际原油期货价格受此...
巴西“选美皇后”竟是毒枭妻子!... (来源:现代快报) 豪车、游艇、音乐节、派对……一名经常在社交媒体上炫富的巴西选美皇后,竟然依靠贩毒...
美国又一艘核动力航母着火,三名... 继“福特”号航母发生火灾后,美国海军“艾森豪威尔”号航母也遭遇火灾。 “艾森豪威尔”号航母 据央视...
曼宁格驾车与火车相撞,不幸身亡 据体坛周报,4月16日,欧洲足坛传出噩耗:前奥地利“国门”亚历山大·曼宁格不幸因遭遇严重的交通事故去...
“特朗普不是世界皇帝” 当地时间4月16日,巴西总统卢拉重申美国总统特朗普“不是世界皇帝”,不能一直以战争威胁其他国家。他称...