验证Javascript函数返回的内容

我正在想让这个函数返回什么。目前正在逐行细分。

function a(arg) {
  return arg.replace(/^\?/,")
    .split('&')
    .map(p => {
      const [k,v] = p.split('=');
      return { [k]: v };
    })
    .reduce((o,item) => ({ ...o,...item}),{});
}
  1. 所以看起来在arg中,所有“?”用引号代替。
  2. 然后arg在'&'处分割。

这是事情变得朦胧的地方。是否将args中的每个char都放置在每个“ =”处的新数组中,其中k是数组的键?另外,我不确定.reduce函数中正在累积什么。

在改善我的JS旅程方面,我们将提供任何帮助。谢谢

qwezxcsl 回答:验证Javascript函数返回的内容

该函数期望2019-11-04 11:39:17.179 26830-26830/com.example.myapp D/AuthActivity: 2131230930 == 2131230775 = false 2019-11-04 11:39:17.179 26830-26830/com.example.myapp D/AuthActivity: 2131230930 == 2131230781 = false 2019-11-04 11:39:17.180 26830-26830/com.example.myapp D/AuthActivity: 2131230930 == 2131230782 = false where 2131230930 is the destination.getId() and (2131230775,2131230781,2131230782) is the resource ids even when I'm at the destination,the id still doesn't match with the resource id 之间的每个子字符串在&符号的左侧和右侧都有一个值,例如:

=

被拆分后,foo=fooVal&bar=barVal&baz=bazVal // ^ ^ ^ 所做的是将值放在.map的左侧作为对象内的键,并将其值放在{{1的右侧}}作为该键的值,例如

=

变成

=

然后foo=fooVal&bar=barVal&baz=bazVal 将这些对象合并为一个:

[
  { foo: 'fooVal' },{ bar: 'barVal' },{ baz: 'bazVal' },]

如果没有.reduce{ foo: 'fooVal',bar: 'barVal',baz: 'bazVal',} ,可能更容易理解:

.map

本文链接:https://www.f2er.com/3169204.html

大家都在问