2017-05-19 75 views
1

我想敲我的腦袋來過濾下面寫的JSON來獲得所需的結果。如何使用lodash.js或underscore.js過濾json?

[{ 
     "Key": "EShSOKthupE=", 
     "ImageUrl": "path", 
     "Title": "ABC", 
     "CityId": 16, 
     "TimezoneShortName": "PYT", 
     "UtcHrsDiff": 8.5, 
     "PlaceKey": "QIZHdWOa77o=", 
     "PlaceName": "Shymala Hills Slums", 
     "Lat": 23.2424856, 
     "Long": 77.39488289999997, 
     "ActivityList": [ "Test Activity" ] 
     }, 
     { 
     "Key": "NXLQpZAZT4M=", 
     "ImageUrl": "", 
     "Title": "ASAS", 
     "CityId": 17, 
     "TimezoneShortName": "AEST", 
     "UtcHrsDiff": 10, 
     "PlaceKey": "o4fAkahBzYY=", 
     "PlaceName": "ASAS", 
     "Lat": 12.9856503, 
     "Long": 77.60569269999996, 
     "ActivityList": [ "Adventure Sport" ] 
     }] 

現在我想從上面的json獲得像這樣的json,使用lodash或者requirejore js。

[{ 
    "PlaceKey": "QIZHdWOa77o=", 
    "PlaceName": "ABC", 
    "Lat": 23.2424856, 
    "Long": 77.39488289999997 
    }, 
    { 
    "PlaceKey": "o4fAkahBzYY=", 
    "PlaceName": "ASAS", 
    "Lat": 12.9856503, 
    "Long": 77.60569269999996, 
    }] 

我可以得到這個幫助嗎?

+0

我已經使用過濾器_.filter來得到這個但donno exaclty如何得到我提到的結果。 –

+0

我不明白爲什麼這個問題被標記爲否定的? –

回答

2

你可以做到這一點簡單的Javascript,無需像任何外部庫:

filteredArray=arr.map(function(item){ 
    return { 
    "PlaceKey": item.PlaceKey, 
    "PlaceName": item.PlaceName, 
    "Lat": item.Lat, 
    "Long": item.Long, 
    } 
}) 
5

使用lodash:

_.map(yourArray, (el => _.pick(el, ['PlaceKey', 'PlaceName', 'Lat', 'Long']))) 
1

使用_.map功能

var finalArray = _.map(your_arr, function(obj) { 
    return { 
    "PlaceKey": obj.PlaceKey, 
    "PlaceName": obj.PlaceName, 
    "Lat": obj.Lat, 
    "Long": obj.Long, 
    } 
}); 

或者只是使用數組map功能:

var finalArray = your_arr.map(function(obj) { 
    return { 
    "PlaceKey": obj.PlaceKey, 
    "PlaceName": obj.PlaceName, 
    "Lat": obj.Lat, 
    "Long": obj.Long, 
    } 
}); 
+0

我正在嘗試使用相同的'.filter'。那是錯誤的/冗長的? –

+1

map方法用於轉換數組中的每個項目,而filter方法用於選擇數組中的某些項目。在這種情況下它並不重要 –

+0

非常感謝您的解釋。但通過您的邏輯'.filter'可以用來選擇每個對象的一些屬性?不是嗎?所以不能我們選擇完整的'返回e​​l.PlaceKey && el.PlaceName' –