मेरे पास event
ऑब्जेक्ट्स events
नामक ऑब्जेक्ट्स हैं। प्रत्येक event
में markets
है, जिसमें market
ऑब्जेक्ट वाली एक सरणी है। यहां के अंदर outcomes
नामक एक और सरणी है, जिसमें outcome
ऑब्जेक्ट्स हैं।Underscore.js .filter() और .any()
this question में, मैंने उन सभी घटनाओं को खोजने के लिए [अंडरस्कोर.जेएस] तरीका मांगा जिनके पास बाजार हैं जिनके पास test
नाम की संपत्ति है। जवाब था:
// filter where condition is true
_.filter(events, function(evt) {
// return true where condition is true for any market
return _.any(evt.markets, function(mkt) {
// return true where any outcome has a "test" property defined
return _.any(mkt.outcomes, function(outc) {
return outc.test !== "undefined" && outc.test !== "bar";
});
});
});
यह अच्छा काम करता है, लेकिन मैं सोच रहा हूँ मैं इसे कैसे बदल अगर मैं प्रत्येक बाजार के लिए परिणामों को फ़िल्टर करना चाहता था, इसलिए कि market.outcomes
केवल संग्रहीत परिणामों कि bar
के बराबर थे। वर्तमान में, यह सिर्फ मुझे बाजार दे रहा है जिनके पास कुछtest
गुण हैं। मैं उन लोगों को बाहर करना चाहता हूं जो नहीं करते हैं।
यह वास्तव में महान काम करता है? आपका भीतरूनी '.any()' कॉलबैक संदर्भ "परिणाम" लेकिन पैरामीटर "आउटसी" है ... – Pointy
इसके अलावा, ऐसा लगता है कि आपको बस '.any() 'से' .all() से फ़्लिप करने की आवश्यकता है। एक विपरीत स्थिति के साथ। दूसरे शब्दों में, "जो भी हैं ..." से "सभी जो नहीं हैं ..." – Pointy
क्षमा करें, टाइपो .... –