簡體   English   中英

如何使用數組值過濾對象?

[英]How can I filter the Object with an Array values?

抱歉英語不好:/

你好朋友,我有一個這樣的對象。 我通過一個按鈕將某些值加載到一個系列中。 我需要用這個數組的元素過濾這個對象。 我怎樣才能做到這一點?

數組中的每個元素都應該查詢 wtype_id。 如果沒有,它不應該顯示在屏幕上。

同時,該對象擁有CITY - DISTRICT - SERVICE - LOCATION系統。 我不得不質疑服務。 此外,在一個 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/>' +

好的,讓我們用一個交互式代碼片段來試試:

 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嗎? 保持原樣?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM