以下是输入内容:
var m = [{
name: 'foo',
routes: [{verb: 'post', path: '/foo1'},
{verb: 'get', path: '/foo2'}]
}, {
name: 'bar',
routes: [{verb: 'put', path: '/:id'}]},
{
name: '__ignoreme',
routes: [{verb: 'post', path: '/baz1'},
{verb: 'get', path: '/baz2'}]
}]
使用 map
和 filter
,我想要实现:
var desired = [
'foo POST /foo1',
'foo GET /foo2',
'bar PUT /:id',
]
完整代码:
var m = [{
name: 'foo',
routes: [{verb: 'post', path: '/foo1'},
{verb: 'get', path: '/foo2'}]
}, {
name: 'bar',
routes: [{verb: 'put', path: '/:id'}]},
{
name: '__ignoreme',
routes: [{verb: 'post', path: '/baz1'},
{verb: 'get', path: '/baz2'}]
}]
var desired = [
'foo POST /foo1',
'foo GET /foo2',
'bar PUT /:id',
]
var myOutput = m
.filter(function (m) {
return m.name.indexOf('__') === -1;
})
.map(function (m) {
return [
m.name,
m.routes[0].verb.toUpperCase(), // I should loop through my array instead of getting just the first element
// But can I loop through the array in my map?
m.routes[0].path
].join(' ');
});
console.log('>myOutput:', myOutput);
// What I achieve which is not desired :
// [
// 'foo POST /foo1',
// 'foo PUT /:id',
//]
这是我代码中使用的结构,我想通过小的变化并仍然使用map
和filter
来实现我期望的输出。
'foo GET /foo2'
吗?但是你已经明确地将它过滤掉了。 - Crescent Freshmap
函数中循环我的路由数组? - Web Developer