2014-10-08 3 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 в том же формате, он начал в (вар JSON = { «продукты»: [...), но содержащий только отфильтрованные объекты, если они существовать. Если нет, я просто хочу пустой массив. Как мне это сделать?

+1

'вар stuffObj = {продукции: вещи}' –

+0

Пожалуйста, обратите внимание, что вы присваиваете 'json' является ** object **, а конкретный синтаксис называется * object literal *, а не JSON. И это, конечно, * не * строка. JavaScript - это * язык программирования *, JSON - это * формат данных *. –

ответ

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); 
Смежные вопросы