[英]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.