Проблема с проверкой (for, if, JSON)

Проблема такова:
Написал проверку на наличие значения объекта, но проверку он проходит мягко говоря плохо.
Если на чистоту, он её проверяет лишь 1 раз, и лишь первый ключ (его значение). Если смотреть на код
то всё логично, но почему-то он не проверят последующие ключи (их значения), и выполняет else
введите сюда описание изображения

введите сюда описание изображения

введите сюда описание изображения

<div class="create"><h2>Создать шаблон</h2></div>

var addBtn = document.querySelector(".create");
addBtn.addEventListener("click", () => {
    var a = textTempName.value.trim() == "";
    var b = textTempContent.value.trim() == "";
    var c = textTempName.value.toLowerCase().trim();
    var d = textTempContent.value.toLowerCase().trim();
    if(!a && !b) {
        if(config["templates"].length != 0) {
            config["templates"].forEach((x) => {
                if(x.name == c) {
                    return alert(`Шаблон "${c}" занят.`)
                } else {
                    newTemp(c,d);
                    //return alert(`Шаблон "${c}" добавлен.`)
                }
            })
        } else {
            newTemp(c,d)
        }
    } else {
        alert("Ошибка!\nПроверьте все поля.")
    }
    
});

В JSON:

{
    "templates": [
        {
            "name": "test",
            "content": "2"
        }
    ]
}

Ответы (1 шт):

Автор решения: Igor

Если смотреть на код то всё логично

Нет, не логично. Вы добавляете в массив новый элемент столько раз, сколько там существующих элементов с отличающимся name.

→ Ссылка