首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >请大家解释一下这个JavaScript代码,工作怎么样?

请大家解释一下这个JavaScript代码,工作怎么样?
EN

Stack Overflow用户
提问于 2022-01-24 06:45:13
回答 1查看 40关注 0票数 -1

这是JavaScript代码,工作非常完美,但问题是我无法理解这是如何工作的。如果有人知道这是怎么回事,请解释给我听。

这是查询= ?cid=619386618c57a571f4463d45&type=page

代码语言:javascript
代码运行次数:0
运行
复制
export default (query) => {
    if(query){
        const queryString = query.split("?")[1];
        if(queryString.length > 0){
            const params = queryString.split("&");
            const paramObj = {};
            params.forEach(param => {
                const keyValue = param.split("=");
                paramObj[keyValue[0]] = keyValue[1];
            });
            return paramObj;
        }
    }

    return {};
}
EN

回答 1

Stack Overflow用户

发布于 2022-01-24 06:49:04

这里几乎没有反应。这是相当普通的JavaScript

代码语言:javascript
代码运行次数:0
运行
复制
export default (query) => { // this is the only react here
    if(query){ // if there is a string 
        const queryString = query.split("?")[1]; // get the stuff after the ?
        if(queryString.length > 0){ // if there was stuff after the ? 
            const params = queryString.split("&"); // split on & (gives an array)
            const paramObj = {}; // create an object
            params.forEach(param => { // for each part of the split array 
                const keyValue = param.split("="); // split on the = 
                paramObj[keyValue[0]] = keyValue[1]; // use the string before the = as key and after as value 
            });
            return paramObj; // return the object
        }
    }

    return {}; // otherwise return empty object
}

整件事都可以写下来

代码语言:javascript
代码运行次数:0
运行
复制
export default (query) => {
  let urlParams = new URLSearchParams(query);
  const result = {};
  for (const [key, value] of urlParams.entries()) { 
    result[key] = value;
  }
  return result;
}

测试:

代码语言:javascript
代码运行次数:0
运行
复制
const getParams = query => {
  let urlParams = new URLSearchParams(query);
  const result = {}
  for (const [key, value] of urlParams.entries()) { // each 'entry' is a [key, value] tupple
    result[key] = value;
  }
  return result;
}

console.log(getParams("?cid=619386618c57a571f4463d45&type=page"))

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70829927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档