Существует объект, содержащий объекты, имеющие такую форму:
bigObject: {
"a - values": { atr: true}
"a - items": { atr: true}
"a - others": { atr: false}
"b - values": { atr: true}
"b - items": { atr: true}
"b - others": { atr: false}
"c - values": { atr: false}
"c - items": { atr: true}
"c - others": { atr: false}
}
Я использую этот объект внутри функции для проверки каждый раз, когда один из атрибутов изменил свое логическое значение: onButtonClicked(item)
это что-то вроде:
onButtonClicked(item) {
bigObject[item.id].atr= !bigObject[item.id].atr;
}
Внутри этой функции я хочу разделить их, чтобы иметь возможность проверять значения для объектов, начиная с a
, b
и c
по отдельности. Для этого я сделал: const toCheck = item.id.split("-")[0];
это работает нормально, он будет принимать только те объекты, которые начинаются с, если по нему щелкнули.
следующий шаг - проверить, есть ли атрибуты true
и false
для конкретной буквы.
Для этого я попытался сделать это так:
let countFalse = 0;
let countTrue = 0;
bigObject.forEach(x => {
if ((x.split("-")[0]) === toCheck) {
if (x.atr) {
countTrue++;
} else countFalse++;
}
if (countTrue && countFalse) {
console.log("has both true and false attributes");
} else console.log("nope");
});
Итак, я делю исходное имя, чтобы избавиться от него (значения, предметы, другие), и после этого я пытаюсь подсчитать атрибуты true и false. Если они есть, покажите сообщение о том, что в противном случае нет.
Что-то не так, но я не понимаю, что. Есть идеи?