I have a JavaScript example with map reduce to remove items from an array, after transforming them. Is there a simpler method to achieve this as it seems a bit plicated
I put it in a JSFiddle here and here is the map reduce part:
var after = before.map(function (item) {
if (item.keep) {
return {
z: item.a
};
} else {
return undefined;
}
}).reduce(function (prev, item) {
if (item) {
if ($.isArray(prev)) {
prev.push(item);
return prev;
} else if (prev) {
return [prev, item];
} else {
return [item];
}
} else {
if ($.isArray(prev)) {
return prev;
} else if (prev) {
return [prev];
} else {
return prev;
}
}
});
I have a JavaScript example with map reduce to remove items from an array, after transforming them. Is there a simpler method to achieve this as it seems a bit plicated
I put it in a JSFiddle here and here is the map reduce part:
var after = before.map(function (item) {
if (item.keep) {
return {
z: item.a
};
} else {
return undefined;
}
}).reduce(function (prev, item) {
if (item) {
if ($.isArray(prev)) {
prev.push(item);
return prev;
} else if (prev) {
return [prev, item];
} else {
return [item];
}
} else {
if ($.isArray(prev)) {
return prev;
} else if (prev) {
return [prev];
} else {
return prev;
}
}
});
Share
Improve this question
edited Nov 30, 2015 at 18:00
Giao1968
26k11 gold badges76 silver badges105 bronze badges
asked Nov 19, 2013 at 23:50
KeepCalmAndCarryOnKeepCalmAndCarryOn
9,0752 gold badges34 silver badges50 bronze badges
1
- Maybe try the splice method. – milestyle Commented Nov 19, 2013 at 23:57
1 Answer
Reset to default 7You mean .filter
?
var after = before.filter(function (item) {
return item.keep;
});
Then you can still .map
it if you want/need to.