reduce example

if (!$new->exists($rule)) {
                    $new->add($rule);
                }
            }
        );

        return $new;
    }

    public function highestRate(): ?TaxRule
    {
        return $this->reduce(fn ($result$item) => $result === null || $item->getTaxRate() > $result->getTaxRate() ? $item : $result);
    }

    public function getApiAlias(): string
    {
        return 'cart_tax_rule_collection';
    }

    protected function getExpectedClass(): ?string
    {
        return TaxRule::class;
    }

    
private function getFieldsToSelect(EntityDefinition $definition): array
    {
        $fields = ['id', 'parent_id'];

        if ($definition->isVersionAware()) {
            $fields[] = 'version_id';
            $fields[] = 'parent_version_id';
        }

        $fields = $definition->getFields()
            ->filterInstance(TreePathField::class)
            ->reduce(function Darray $fields, TreePathField $field) {
                if (!\in_array($field->getPathField()$fields, true)) {
                    $fields[] = $field->getPathField();
                }

                return $fields;
            }$fields);

        return $fields;
    }

    private function makeQueryVersionAware(EntityDefinition $definition, string $versionId, QueryBuilder $query): void
    {

        $this->sort(fn (TaxRuleEntity $entityA, TaxRuleEntity $entityB) => $entityA->getType()->getPosition() <=> $entityB->getType()->getPosition());
    }

    public function filterByTypePosition(int $position): TaxRuleCollection
    {
        return $this->filter(fn (TaxRuleEntity $taxRule) => $taxRule->getType()->getPosition() === $position);
    }

    public function highestTypePosition(): ?TaxRuleEntity
    {
        return $this->reduce(fn (?TaxRuleEntity $result, TaxRuleEntity $item) => $result === null || $item->getType()->getPosition() < $result->getType()->getPosition() ? $item : $result);
    }

    public function latestActivationDate(): ?TaxRuleEntity
    {
        return $this->reduce(fn (?TaxRuleEntity $result, TaxRuleEntity $item) => $result === null || $item->getActiveFrom() > $result->getActiveFrom() ? $item : $result);
    }

    public function getApiAlias(): string
    {
        return 'tax_rule_collection';
    }

    
fn (LineItem $lineItem) => $lineItem->getReferencedId()
        );
    }

    public function getApiAlias(): string
    {
        return 'cart_line_item_collection';
    }

    public function getTotalQuantity(): int
    {
        return $this->reduce(fn ($result$item) => $result + $item->getQuantity(), 0);
    }

    protected function getKey(LineItem $element): string
    {
        return $element->getId();
    }

    protected function getExpectedClass(): ?string
    {
        return LineItem::class;
    }

    
public function __construct(private readonly array $allowedPHPFunctions)
    {
    }

    /** * @return TwigFilter[] */
    public function getFilters(): array
    {
        return [
            new TwigFilter('map', $this->map(...)),
            new TwigFilter('reduce', $this->reduce(...)),
            new TwigFilter('filter', $this->filter(...)),
            new TwigFilter('sort', $this->sort(...)),
        ];
    }

    /** * @param iterable<mixed> $array * @param string|callable(mixed): mixed|\Closure $function * * @return array<mixed> */
    
$crawler = $this->createTestCrawler()->filterXPath('//ul[1]/li');
        $this->assertNotSame($crawler->slice()$crawler, '->slice() returns a new instance of a crawler');
        $this->assertInstanceOf(Crawler::class$crawler->slice(), '->slice() returns a new instance of a crawler');

        $this->assertCount(3, $crawler->slice(), '->slice() does not slice the nodes in the list if any param is entered');
        $this->assertCount(1, $crawler->slice(1, 1), '->slice() slices the nodes in the list');
    }

    public function testReduce()
    {
        $crawler = $this->createTestCrawler()->filterXPath('//ul[1]/li');
        $nodes = $crawler->reduce(fn ($node$i) => 1 !== $i);
        $this->assertNotSame($nodes$crawler, '->reduce() returns a new instance of a crawler');
        $this->assertInstanceOf(Crawler::class$nodes, '->reduce() returns a new instance of a crawler');

        $this->assertCount(2, $nodes, '->reduce() filters the nodes in the list');
    }

    public function testAttr()
    {
        $this->assertEquals('first', $this->createTestCrawler()->filterXPath('//li')->attr('class'), '->attr() returns the attribute of the first element of the node list');

        try {
            
Home | Imprint | This part of the site doesn't use cookies.