Я перебираю issues
в данных, отфильтрованных условием.
const rowObjects = Object.keys(data).filter((list) => {
let issueRow = data[list];
let destroyFilter = list._destroy:
return !destroyFilter ? list : null;
}).
map((issue, key) => ({
console.log(key + 1)
}));
Мне интересно, есть ли способ сделать это с помощью lodash?
Я бы сделал что-то подобное, я только что узнал.
const filter = _.pickBy(data, (list) => {
return //whatever you want
});
Глядя на свой код, из того, что я могу собрать, у вас есть ваши данные как литерал объекта, тогда вы помечаете ключ, который вы не хотите, с тегом _destroy
.
Затем вам нужен еще один литерал объекта без отмеченного _destroy
.
Ниже приведена версия, которая делает это без lodash. В lodash может быть проще, не уверен. Но способ ES6 для меня просто выглядит настолько естественным и легким для подражания. Это может быть даже проще выглядеть, разбивая биты на функции полезности, например. последнее сокращение может быть использовано в других местах, если вы хотите ключ/значение, преобразованный обратно в объектный литерал.
пс. Если вы не возражаете изменить оригинальный литерал объекта, это еще проще и, скорее всего, более высокая производительность. Такие вещи, как "Реакция", я считаю детерминированными данными, поэтому удаление на месте может и не быть вариантом.
const data = {
a: {
_destroy: true,
value: "destroy this"
},
b: {
value: "Keep Me!!"
}
};
const data2 =
Object.entries(data).
filter(([key, value]) => !value._destroy).
reduce((obj, [key, value]) => (obj[key] = value) && obj, {});
console.log(data2);
_.filter()
. lodash.com/docs/4.17.4#filter