2014-07-25 10 views
6

का उपयोग करते हुए ऑब्जेक्ट्स के दो सरणी के बीच अंतर कॉफ़ीस्क्रिप्ट। मैं अंडरस्कोर जेएस लाइब्रेरी का उपयोग करके ऑब्जेक्ट्स के दो एरे के अंतर को खोजने की कोशिश कर रहा हूं।अंडरस्कोर जेएस

+0

coffeescript में रेखांकित का उपयोग करना और तुलना करें, तो हर सेन डेवलपर्स बुरा सपना है, इसलिए मैं सरल सादे पुराने जावास्क्रिप्ट लगता है, [** इस तरह **] (http://stackoverflow.com/questions/6715641/an- कुशल-way-to-get-the-difference-between-two-arrays-of-objects) बाहर है? – adeneo

+0

क्या आप इसे कॉफ़ीस्क्रिप्ट में बदलने में मेरी सहायता कर सकते हैं? – compsci45000

उत्तर

13

क्या आप अंडरस्कोर के अंतर फ़ंक्शन का उपयोग करना चाहते हैं? आप यह कर सकते हैं:

_.difference([1, 2, 3, 4, 5], [5, 2, 10]) 

यह कॉफ़ीस्क्रिप्ट में काम करता है।

संपादित

ऑब्जेक्ट की श्रृंखला आईडी संपत्ति

arrayOne = [{id: 1}, {id: 2}] 
arrayTwo =[{id: 2}, {id: 3}] 

_.select arrayOne, (item) -> 
    !_.findWhere(arrayTwo, {id: item.id}) 
+0

या जो मैं करना चाहता हूं लेकिन मैं इसे ऑब्जेक्ट्स के दो एरे के लिए नहीं करना चाहता हूं। प्रत्येक ऑब्जेक्ट में एक अद्वितीय पूर्णांक आईडी – compsci45000

+0

है जिसे आपने अभी 2 घंटे बचाया है। धन्यवाद! – solefald

+2

बस सावधान रहें: _.difference() का उपयोग करते समय सरणी का क्रम महत्वपूर्ण है। यह आपको उन वस्तुओं को नहीं दिखाता है जो दोनों से संबंधित नहीं हैं, यह आपको दिखाता है कि आपने पहली बार दूसरी सरणी घटाते समय क्या छोड़ा है। –

संबंधित मुद्दे