Используйте JavaScript Map Reduce для удаления элементов из массива.

У меня есть пример JavaScript с map, чтобы удалить элементы из массива после их преобразования. Есть ли более простой метод для достижения этой цели, так как он кажется немного сложным

Я поместил это в JSFiddle здесь, и вот часть уменьшения карты:

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

    }
});

1 ответ

Решение

Ты имеешь в виду .filter?

var after = before.filter(function (item) {
   return item.keep;
});

Тогда вы можете еще .map это если хочешь / надо.

Другие вопросы по тегам