У меня есть проблема, чтобы решить, используя некоторые данные из объекта.Данные могут принимать несколько форм и могут существовать или не существовать в первую очередь.Например,
things : {
oranges: true,
apples : false
}
, но это может быть равно:
things : {
oranges: false,
apples : false
}
или, может быть, things
даже не существует
Мне нужно:
1) Определить, что things
существует
2) Определить, что things
содержит дополнительные ключи
Эти два оператора необходимо проверить в одной вызываемой функции, например, thingsHasData()
3) Если у things
есть данные, установлен ли какой-либо из данных на true
?
Это также должна быть вызываемая функция, например fruitsIsTrue()
4)Вернуть ключ для одного из истинных значений
trueFruit()
- это должно вернуть только один ключ, но не имеет значения, какой (у него не должно быть двух истинных значений согласно бизнес-правиламно это скорее запасной вариант - просто вернуть его, если по какой-то причине это так)
Итак, я смог получить ключ пары ключ-значение true
, используя следующее:
var thingsList = {
things : {
oranges: false,
apples : true
}
}
var trueFruit = Object.keys(thingsList).filter(function(key) {
return thingsList[key];
});
return thingsList[0];
Это правильно возвращает apples
и только яблоки, так что это работает для точки 4 , но не другие, и я чувствую, что есть лучшеспособ сделать это, не полагаясь на повторение одного и того же .filter
в нескольких различных функциях.Идеи?