2014-10-08 52 views
0

我有這個JS:如何返回基於過濾器的新對象?

var json = {"products":[{"id":"6066157707315577","reference_prefix":"BB","name":"BeanieBaby","product_line":false,"has_ideas":true},{"id":"6066197229601550","reference_prefix":"BBAGS","name":"BlackBags","product_line":false,"has_ideas":false}],"pagination":{"total_records":4,"total_pages":1,"current_page":1}} 

var stuff = json.products.filter(function(obj) { 
    return obj.has_ideas === true 
}); 

console.log(stuff); 

我需要幫助返回一個js OBJ在它開始於(VAR JSON = {「產品」:...)相同的格式,但只包含過濾的對象,如果他們存在。如果不是,我只想要一個空數組。我該怎麼做呢?

+1

'VAR stuffObj = {產品:東西}' – 2014-10-08 04:25:16

+0

請注意,你所分配給'json'是**對象**,並且具體的語法被稱爲* object literal *,而不是JSON。這當然不是*字符串。 JavaScript是*編程語言*,JSON是*數據格式*。 – 2014-10-08 04:33:42

回答

3

只需創建你的對象,並在其「產品」屬性填寫:

var jsonObj = {"products":[{"id":"6066157707315577","reference_prefix":"BB","name":"BeanieBaby","product_line":false,"has_ideas":true},{"id":"6066197229601550","reference_prefix":"BBAGS","name":"BlackBags","product_line":false,"has_ideas":false}],"pagination":{"total_records":4,"total_pages":1,"current_page":1}} 

var stuff = {}; 
stuff.products = jsonObj.products.filter(function(obj) { 
    return obj.has_ideas === true 
}); 

console.log(stuff);