die folgende Eingabe Mit:`map` und` filter` in JavaScript
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'}]
}]
Mit map
und filter
Ich möchte erreichen:
var desired = [
'foo POST /foo1',
'foo GET /foo2',
'bar PUT /:id',
]
komplette Code:
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',
//]
Dies ist die Struktur, die in meinem Code verwendet wird und ich möchte meine gewünschte Ausgabe mit dem kleinen erzielen ändern und immer noch mit map
und filter
.
ja gibt es eine Möglichkeit, in mein Array zu loopen? –
Ich verstehe nicht, Sie erwarten "foo GET/foo2" in Ihrer Ausgabe? Aber Sie haben es explizit herausgefiltert. –
Ja, wie kann ich innerhalb meiner 'map'-Funktion in mein Routenverzeichnis aufnehmen? –