我正在使用查询字符串库来解析 URL 中的查询参数。
当查询参数采用以下形式时?foo=bar
,lib 返回一个像这样的对象:
{
foo: bar
}
当在表格中?foo=bar1,bar2
,该对象看起来像这样:
{
foo: [bar1, bar2]
}
我想应用该功能myFunction
的每个元素上myObject.foo
获得类似的东西[myFunction(bar)]
or [myFunction(bar1), myFunction(bar2)]
有没有办法可以轻松地做到这一点
myObject.foo.mapOrApply(myFunction)
无需检查这是否是一个数组?
现在,我被迫这样做,而且我发现这非常不美观:
Array.isArray(myObject.foo)
? myObject.foo.map(myFunction)
: [myFunction(myObject.foo)];
你可以使用concat像这样:
[].concat(myObject.foo).map(myFunction)
这适用于当myObject.foo
是单个值或数组
这是一个片段:
const getMapped = ({ foo }, callback) => [].concat(foo).map(callback);
// double a single value
console.log(getMapped({ foo: 1 }, n => 2 * n))
// prefix "new" to every item in the array
console.log(getMapped({ foo: ["bar1", "bar2"] }, str => "new " + str))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)