作者
目录
获取URL参数(不是!) <垃圾代码的书写方式> 题记
如果可以,我想离开地球。 5月29日 147 3 24 147 3 24
输入一个包含参数的URL地址url,编写方法,获取指定名称name的参数。如果该参数存在且唯一,返回字符串形式的参数值。如果该参数存在且有多个,则返回该参数所有值的字符串数组。如果参数不存在,则返回空字符串。
难易程度:困难
输入示例1:
"https://www.sumicode.com?source=1", "source"
输出示例1:
"1"
输入示例2:
"https://www.sumicode.com?source=1&source=2", "source"
输出示例2:
["1", "2"]
导读 大家一起写垃圾代码吧

超级垃圾代码,切勿在项目上使用,否则你将会被钉在耻辱柱上。


思路

没有思路
不要给自己后路
不要给任何人review的机会
把问题丢给别人
加入光荣的进化吧
你需要两把枪,一把叫写,一把叫跑!
不管谁跑,能跑就行

说明

使用一次循环,对” ? “、” = “和” & “ 分别做出判断,改变控制器状态来进行不同的操作。

首先先对 “ ? “ 进行判断,改变控制器状态,跳出此次循环。

控制器为 2 的时候,对” ? “ 到 “ = “ 之间的字符串进行截取。

循环到” = “ 的时候,判断截取字符串是否与目标相匹配,是便继续改变控制器的状态为3,否则变为2重新截取。

控制器为 3 的时候,对” = “ 到 “ & “ 之间的字符串进行截取

完成循环之后进行最后对比操作。


只要我不尴尬,尴尬的就是别人 /滑稽

扫码分享到移动端
她的代码 (1)
如果可以,我想离开地球。LV3 5月27日 17:39 提交了代码 通过测试
代码收获1个赞
function getUrlParam(url, name) {
  var a = url
  var b = name
  var c = 1
  var d = false
  var e = []
  var s = ''
  var g = ''
  var i 

  for (i = 0; i < a.length; i++) {
    if (a[i] === '?') {
	  c = 2
	  continue
	}
	if (a[i] === '=') {
	  if (s === b) {
	    c = 3
		g = ''
		continue
	  }
	  c = 1
	  s = ''
	  continue
	} 
	if (a[i] === '&') {
	  if (c === 3) {
	    e.push(g)
	  }
	  s = ''
      g = ''
	  c = 2
	  continue
	} 
	if (c === 2) {
	  s += a[i]
	}
	if (c === 3) {
	  g += a[i]
	}
	if ((i+ 1) === a.length) {
      if (c === 3) {
        e.push(g)
      }
      break
    } 
  }
  if (e.length < 1) {
    return ''
  } else if (e.length > 1) {
    return e
  } else {
    return e[0]
  }
}
3 条评论
有趣LV4 评论于 5月29日 18:15

你这个代码那天费了我老长时间才整明白。明白了,但没完全明白,甚至还有点晕。

粟米社区小李LV5 评论于 5月29日 16:06

奖励已发放~

粟米社区小李LV5 评论于 5月29日 12:05

哈哈哈

参与评论互动
登录即可参与评论互动哦