как проверить, имеет ли конкретный ключ JSON значение, одинаковое для всех ключей

-1
For example, I have a json response of array type where the second key in each array has same value. The count of the array is dynamic  but I need to check everytime, if that particular key value is same in all the arrays, i need to hide a label.

"loadable": [
      {
        "position": {
          "positionType": "XXX",
          "thirdKey": 1,
          "fourthKey": 1,
        },
      },
      {
          "position": {
          "positionType": "XXX",
          "thirdKey": 1,
          "fourthKey": 1,
        },
      },
      {
          "position": {
          "positionType": "XXX",
          "thirdKey": 1,
          "fourthKey": 1,
        },
{
        "position": {
          "positionType": "XXX",
          "thirdKey": 1,
          "fourthKey": 1,
        },
}
}
]

Здесь я хочу проверить, все ли значения для ключевого positionType == "XXX", тогда мне нужно скрыть метку. Пожалуйста, ответьте быстро.

  • 1
    «Пожалуйста, предоставьте ответ в кратчайшие сроки». что ты уже испробовал?
  • 0
    для загружаемых в loadables {if loadable.position? .positionType == "XXX" {footer.labelTitle.isHidden = true}
Показать ещё 4 комментария
Теги:
arrays
swift3

2 ответа

1
Лучший ответ

Если вы хотите проверить, что каждое значение равно в массиве, вы можете сделать это так.

let searchValue = "xxx"
if loadables.index(where: {$0.position?.positionType != searchValue}) != nil {
    //positionType for all objects are not equal to searchValue
    footer.labelTitle.isHidden = false
}
else {
    //positionType for all objects are equal to searchValue
    footer.labelTitle.isHidden = true
}
  • 0
    это работает, если какой-либо из ключей соответствует «XXX». Но я хочу скрыть метку, если все значения ключей равны «XXX». Если хотя бы одно значение не XXX, я хочу показать метку
  • 0
    @vinny Тогда это решение отлично подходит для этого условия, также проверьте, что я отредактировал ответ, попробуйте один раз отредактировать ответ.
Показать ещё 2 комментария
0

Это меньше проблема json, но вопрос "Все элементы в моем словаре имеют одинаковое значение", где элементы будут ключевым элементом, который вы ищете.

func checkValues(array: Array<Element>) -> Bool {

guard let myValue = array.firstObject()?.position?.positionType else {
    return false
}

for element in array {
    if element.position.positionType != myValue {
        return false
    }
}

return true
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню