使用JavaScript map reduce从数组中删除项目

Kee*_*yOn 3 javascript reduce jquery dictionary

我有一个带有map reduce的JavaScript示例,用于在转换它们之后从数组中删除项目.是否有更简单的方法来实现这一点,因为它看起来有点复杂

把它放在JSFiddle这里,这里是map reduce部分:

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;
        }

    }
});
Run Code Online (Sandbox Code Playgroud)

Fel*_*ing 7

你的意思是.filter

var after = before.filter(function (item) {
   return item.keep;
});
Run Code Online (Sandbox Code Playgroud)

.map如果你想要/需要,你仍然可以.