foreach|foreach 返回undefined 留坑
封装方法 获取浏览器参数,但是使用了foreach 循环后,调用方法打印就是undefined
原代码:
export function getUrlParams(parNmae) {
let pramSplitStr = location.hash.split("#/")[1].split("?")[1];
if(!pramSplitStr) return;
let resultParNameStr = pramSplitStr.split("&");
resultParNameStr.forEach(el => {
let pranItem = el.split('=');
if (parNmae == pranItem[0]) {
return pranItem[1]
} else {
return null
}
})
解决替换成find 就好了
// 获取浏览器指定参数(带hash的)
export function getUrlParams(parNmae) {
let pramSplitStr = location.hash.split("#/")[1].split("?")[1];
if(!pramSplitStr) return;
let resultParNameStr = pramSplitStr.split("&");
let ret = resultParNameStr.find(el => {
let pranItem = el.split('=');
return parNmae == pranItem[0] })
let handleOpt = ret.split('=')
return handleOpt[1]
}
【foreach|foreach 返回undefined 留坑】forEach() 方法为每个数组元素调用一次函数(回调函数)。
原因:
forEach没有返回值,只针对每个元素调用func。
forEach()无法在所有元素遍历完前,终止遍历,或者return 跳出当前循环,
这样的话,使用return失效,空循环就会显示undefined
推荐阅读
- Java算法及JDK源码探究|Java 集合的输出 (Iterator, ListIterator, Enumeration, foreach)
- Koa|koa返回前端响应后,后台静默做其他操作
- Mysql|Mysql 实现 向上递归查找父节点并返回树结构
- #|java递归返回不确定层级的树状结构数据
- Java|Java 监控直播流rtsp协议转rtmp、hls、httpflv协议返回浏览器
- SSM框架解析|【SSM框架】Mybatis详解10(源码自取)之入参、返回值map
- 自然语言处理|【BERT】模型返回值解析
- C|Rust : 如何将C字符串转换为Rust字符串并通过FFI返回()
- python|python 调用rust,从Rust函数返回一个字符串到Python
- 日常错误|postman能正常请求但java程序请求返回400