我一直在用这个把头发拉出来 - 我有以下数组,继续一个对象 - 其中包含一个凭证数组(包含可能无限数量的对象)
var retailer = [ { _id: 52000c,
address: 'bla bla bla',
email: 'test@emailaddress',
img: 'http://bla.jpg',
intro: ' hello',
strapLine: 'goodbye',
tel: '0000 0000000',
title: 'YE OLDE SHOPPE',
website: 'http://',
vouchers:
[ { _id: 523d003,
barcode: false,
description: 'blah',
endTime: '20 December 2013',
hidden: true,
redemptionCode: 'redemptionCode',
smallPrint: 'blah.',
startTime: 'Today',
title: 'blahbla' },
{ _id: 523de3,
barcode: false,
description: 'blah',
endTime: '20 December 2013',
hidden: true,
redemptionCode: 'redemptionCode',
smallPrint: 'blah.',
startTime: 'Today',
title: 'blahbla' },
{ _id: 523dr,
barcode: false,
description: 'blah',
endTime: '20 December 2013',
hidden: false,
redemptionCode: 'redemptionCode',
smallPrint: 'blah.',
startTime: 'Today',
title: 'blahbla' } ]
} ]
使用 underscore.js,我试图过滤掉那些具有隐藏属性的凭证对象(隐藏 == true) - 所以我最终得到以下内容,所以我只得到那些可见的凭证(隐藏 = =假)
var retailer = [ { _id: 52000c,
address: 'bla bla bla',
email: 'test@emailaddress',
img: 'http://bla.jpg',
intro: ' hello',
strapLine: 'goodbye',
tel: '0000 0000000',
title: 'YE OLDE SHOPPE',
website: 'http://',
vouchers:
[{ _id: 523dr,
barcode: false,
description: 'blah',
endTime: '20 December 2013',
hidden: false,
redemptionCode: 'redemptionCode',
smallPrint: 'blah.',
startTime: 'Today',
title: 'blahbla' }]
} ]
所以使用下划线js,我根据之前的堆栈溢出线程(Filtering array with underscore.js)编写了以下内容
var visibleVouchers = _(retailer[0].vouchers).filter(function (x) { return !x.hidden;});
这将返回所有可见的凭证 - 但是,我在此过程中失去了零售商。最好的方法是什么?我尝试了很多不同的方法——例如,尝试用新的凭证数组替换旧的凭证数组——但它似乎不起作用。
谢谢,罗伯