Как я могу отфильтровать объект со значениями массива? - PullRequest
0 голосов
/ 23 марта 2020

Извините за плохой английский sh: /

Здравствуйте, друзья, у меня есть такой объект. Я загружаю определенные значения в серию с помощью кнопки. Мне нужно отфильтровать этот объект с элементами этого массива. Как я могу это сделать?

Каждый элемент в массиве должен запросить wtype_id. В противном случае он никогда не должен отображаться на экране.

Между тем, этот объект содержит систему CITY - РАЙОН - СЕРВИС - РАСПОЛОЖЕНИЕ. Я должен подвергнуть сомнению Сервис. Кроме того, есть статус более чем одного города и района в Get.

Это мой массив:

0: "1"
1: "2"
2: "3"
3: "4"
4: "5"
5: "6"
6: "7"

Это мой объект

{
    "41": {
        "citys_id": "41",
        "citys_name": "Kocaeli",
        "sub_citys": {
            "505": {
                "subcity_id": "505",
                "subcity_name": "İzmit",
                "subcity_city_id": "41",
                "wtype": {
                    "1": {
                        "wtype_id": "1",
                        "wtype_name": "Yemek",
                        "wtype_icon": "http://icons.iconarchive.com/icons/dtafalonso/android-lollipop/32/Phone-icon.png",
                        "locations": [
                            {
                                "loc_id": "13",
                                "loc_type": "1",
                                "loc_name": "With Beyond Bilişim",
                                "loc_number": "05322510292",
                                "loc_pazartesi": "1",
                                "loc_sali": "1",
                                "loc_carsamba": "1",
                                "loc_persembe": "1",
                                "loc_cuma": "1",
                                "loc_cumartesi": "0",
                                "loc_pazar": "1",
                                "loc_open": "1100",
                                "loc_close": "1400",
                                "loc_city": "41",
                                "loc_subcity": "505",
                                "loc_adress": "Çukurbağ Mahallesi, Molla Raşit Sokak, Numara: 14",
                                "loc_tarif": "Oradan çıkınca sola doğru dönüp devam edeceğiz",
                                "loc_lat": "41.0710419",
                                "loc_lng": "29.0127192"
                            }
                        ]
                    },
                    "3": {
                        "wtype_id": "3",
                        "wtype_name": "Eczane",
                        "wtype_icon": "https://developers.google.com/maps/documentation/javascript/examples/full/images/beachflag.png",
                        "locations": [
                            {
                                "loc_id": "14",
                                "loc_type": "3",
                                "loc_name": "a",
                                "loc_number": "b",
                                "loc_pazartesi": "0",
                                "loc_sali": "0",
                                "loc_carsamba": "0",
                                "loc_persembe": "0",
                                "loc_cuma": "1",
                                "loc_cumartesi": "0",
                                "loc_pazar": "0",
                                "loc_open": "800",
                                "loc_close": "1200",
                                "loc_city": "41",
                                "loc_subcity": "505",
                                "loc_adress": "asd",
                                "loc_tarif": "asda",
                                "loc_lat": "40.5880381636505",
                                "loc_lng": "30.481870596093742"
                            }
                        ]
                    }
                }
            }
        }
    }
}

Это моя функция ..

 $.each(props, function(key, value) {
            $.each(value.sub_citys, function(key2, value2) {
                $.each(value2.wtype, function(key3, value3) {
                    $.each(value3.locations, function(key4, value4) {
                        var Location = {
                            coords: {
                                lat: parseFloat(value4.loc_lat),
                                lng: parseFloat(value4.loc_lng)
                            },
                            iconImage: value3.wtype_icon,
                            content: '<div style="text-align:center;"><h5>' + value4.loc_name + '</h5><a>' + value4.loc_adress + '</a><br/><small>' + value4.loc_tarif + '</small><hr/>' +

1 Ответ

0 голосов
/ 23 марта 2020

Хорошо, давайте попробуем это с интерактивным фрагментом кода:

var props = {
  "41": {
    "citys_id": "41",
    "citys_name": "Kocaeli",
    "sub_citys": {
      "505": {
        "subcity_id": "505",
        "subcity_name": "İzmit",
        "subcity_city_id": "41",
        "wtype": {
          "1": {
            "wtype_id": "1",
            "wtype_name": "Yemek",
            "wtype_icon": "http://icons.iconarchive.com/icons/dtafalonso/android-lollipop/32/Phone-icon.png",
            "locations": [{
              "loc_id": "13",
              "loc_type": "1",
              "loc_name": "With Beyond Bilişim",
              "loc_number": "05322510292",
              "loc_pazartesi": "1",
              "loc_sali": "1",
              "loc_carsamba": "1",
              "loc_persembe": "1",
              "loc_cuma": "1",
              "loc_cumartesi": "0",
              "loc_pazar": "1",
              "loc_open": "1100",
              "loc_close": "1400",
              "loc_city": "41",
              "loc_subcity": "505",
              "loc_adress": "Çukurbağ Mahallesi, Molla Raşit Sokak, Numara: 14",
              "loc_tarif": "Oradan çıkınca sola doğru dönüp devam edeceğiz",
              "loc_lat": "41.0710419",
              "loc_lng": "29.0127192"
            }]
          },
          "3": {
            "wtype_id": "3",
            "wtype_name": "Eczane",
            "wtype_icon": "https://developers.google.com/maps/documentation/javascript/examples/full/images/beachflag.png",
            "locations": [{
              "loc_id": "14",
              "loc_type": "3",
              "loc_name": "a",
              "loc_number": "b",
              "loc_pazartesi": "0",
              "loc_sali": "0",
              "loc_carsamba": "0",
              "loc_persembe": "0",
              "loc_cuma": "1",
              "loc_cumartesi": "0",
              "loc_pazar": "0",
              "loc_open": "800",
              "loc_close": "1200",
              "loc_city": "41",
              "loc_subcity": "505",
              "loc_adress": "asd",
              "loc_tarif": "asda",
              "loc_lat": "40.5880381636505",
              "loc_lng": "30.481870596093742"
            }]
          }
        }
      }
    }
  }
}

jQuery.each(props, function(key, value) {
  $.each(value.sub_citys, function(key2, value2) {
    $.each(value2.wtype, function(key3, value3) {
      $.each(value3.locations, function(key4, value4) {
        var Location = {
          coords: {
            lat: parseFloat(value4.loc_lat),
            lng: parseFloat(value4.loc_lng)
          },
          iconImage: value3.wtype_icon,
          content: '<div style="text-align:center;"><h5>' + value4.loc_name + '</h5><a>' + value4.loc_adress + '</a><br/><small>' + value4.loc_tarif + '</small><hr/>'
        }
        console.log(Location)
      })
    })
  })
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

Поскольку ваша функция еще не завершена, я решил просто зарегистрировать объект Location.

В чем я не уверен ответить еще, является ли «мой массив» содержит больше элементов, чем «мой объект» (он же props). Должны ли значения быть null? Оставаться как есть?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...