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

3

我有一个 JavaScript 的示例,使用 map reduce 从数组中删除项目,并在转换后进行。是否有更简单的方法来实现这一点,因为它似乎有点复杂。

将其放在 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;
        }

    }
});

也许尝试使用splice方法。 - milestyle
1个回答

7
你是说 .filter
var after = before.filter(function (item) {
   return item.keep;
});

如果你想/需要的话,仍然可以将其.map


var after = before.filter(function (item) { return item.keep; }).map(function (item) { return { z: item.a }; })就是这样了。谢谢。 - KeepCalmAndCarryOn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接