Code Duplication    Length = 12-17 lines in 3 locations

src/Arrayy.php 3 locations

@@ 2256-2270 (lines=15) @@
2253
     * @psalm-return static<TKey,T>
2254
     * @psalm-mutation-free
2255
     */
2256
    public function each(\Closure $closure): self
2257
    {
2258
        // init
2259
        $array = [];
2260
2261
        foreach ($this->getGenerator() as $key => $value) {
2262
            $array[$key] = $closure($value, $key);
2263
        }
2264
2265
        return static::create(
2266
            $array,
2267
            $this->iteratorClass,
2268
            false
2269
        );
2270
    }
2271
2272
    /**
2273
     * Sets the internal iterator to the last element in the array and returns this element.
@@ 5182-5193 (lines=12) @@
5179
     * @psalm-return static<TKey,T>
5180
     * @psalm-mutation-free
5181
     */
5182
    public function reduce($callable, $initial = []): self
5183
    {
5184
        foreach ($this->getGenerator() as $key => $value) {
5185
            $initial = $callable($initial, $value, $key);
5186
        }
5187
5188
        return static::create(
5189
            $initial,
5190
            $this->iteratorClass,
5191
            false
5192
        );
5193
    }
5194
5195
    /**
5196
     * @param bool $unique
@@ 5267-5283 (lines=17) @@
5264
     * @psalm-return static<TKey,T>
5265
     * @psalm-mutation-free
5266
     */
5267
    public function reject(\Closure $closure): self
5268
    {
5269
        // init
5270
        $filtered = [];
5271
5272
        foreach ($this->getGenerator() as $key => $value) {
5273
            if (!$closure($value, $key)) {
5274
                $filtered[$key] = $value;
5275
            }
5276
        }
5277
5278
        return static::create(
5279
            $filtered,
5280
            $this->iteratorClass,
5281
            false
5282
        );
5283
    }
5284
5285
    /**
5286
     * Remove a value from the current array (optional using dot-notation).