2014-10-08 77 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);