From d6d243458c8de93a27864eb9bb97780a9ce2cde8 Mon Sep 17 00:00:00 2001 From: Alexei Anoshenko <2277098+anoshenko@users.noreply.github.com> Date: Sun, 13 Sep 2026 10:57:43 +0300 Subject: [PATCH] Optimisation --- data.go | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/data.go b/data.go index 52ffff4..b46db41 100644 --- a/data.go +++ b/data.go @@ -186,21 +186,25 @@ func (object *dataObject) PropertyByTag(tag string) DataNode { func (object *dataObject) RemovePropertyByTag(tag string) DataNode { if object.property != nil { - for i, node := range object.property { - if node.Tag() == tag { - switch i { - case 0: - object.property = object.property[1:] + index := slices.IndexFunc(object.property, func(node DataNode) bool { + return node.Tag() == tag + }) - case len(object.property) - 1: - object.property = object.property[:len(object.property)-1] + if index >= 0 { + node := object.property[index] - default: - object.property = append(object.property[:i], object.property[i+1:]...) - } + switch index { + case 0: + object.property = object.property[1:] - return node + case len(object.property) - 1: + object.property = object.property[:len(object.property)-1] + + default: + object.property = append(object.property[:index], object.property[index+1:]...) } + + return node } } return nil