Я новичок в JavaScript, поэтому я довольно сильно полагаюсь на eslint и плагины, чтобы помочь мне. Я пишу для среды, в которой есть loda sh 3.9.3 и которая должна работать с Chrome 40, что означает es5.
У меня есть небольшой код:
_.forEach(star.system().planets, function (world) {
if (world.starting_planet === true)
if (world.planet) {
world.planet.shuffleLandingZones = true;
} else world.generator.shuffleLandingZones = true;
});
eslint-plugin-lodash
выдает сообщение «Предпочитайте _.filter или _.some оператору if внутри _.forEach», ссылаясь на его статью Prefer-filter .
На мой взгляд, _.forEach
кажется здесь правильным выбором, поскольку я хочу установить новое значение в существующем массиве. Но я попробовал это и придумал
var startingPlanets = _.filter(star.system().planets, {
starting_planet: true,
});
_.forEach(startingPlanets, function (planets) {
if (planets.planet) {
planets.planet.shuffleLandingZones = true;
} else planets.generator.shuffleLandingZones = true;
});
Но я смотрю на это и думаю, разве это не менее эффективно, поскольку теперь я повторяю два массива вместо одного? Я что-то упускаю? Должен ли я игнорировать линтер на этом? Я неправильно использовал _.filter
для достижения своей цели?