मैं CoffeeScript में निम्नलिखित कोड का उपयोग कर रहा:CoffeeScript
if elem in my_array
do_something()
कौन इस जावास्क्रिप्ट को संकलित करता है:
if (__indexOf.call(my_array, elem) < 0) {
my_array.push(elem);
}
मैं इसे समारोह __indexOf जिस पर परिभाषित किया गया है उपयोग कर रहा है देख सकते हैं लिपि के शीर्ष।
मेरा प्रश्न इस उपयोग के मामले के बारे में है: मैं एक सरणी से एक तत्व को हटाना चाहता हूं, और मैं IE8 का समर्थन करना चाहता हूं। मैं indexOf
पर indexOf
पर indexOf
का समर्थन करने वाले ब्राउज़र में indexOf
और splice
के साथ आसानी से ऐसा कर सकता हूं। हालांकि, IE8 में यह काम नहीं करता है:
if (attr_index = my_array.indexOf(elem)) > -1
my_array.splice(attr_index, 1)
मैं __indexOf
समारोह CoffeScript द्वारा परिभाषित उपयोग करने की कोशिश, लेकिन मैं संकलक में एक आरक्षित शब्द त्रुटि मिलती है।
if (attr_index = __indexOf.call(my_array, elem) > -1
my_array.splice(attr_index, 1)
तो मैं कैसे CoffeScript का उपयोग करें या वहाँ indexOf फोन करने के लिए एक और अधिक विनीत तरीका है सकते हैं? यह एक ही फ़ंक्शन को दो बार परिभाषित करने के लिए अजीब लगता है, क्योंकि कॉफीस्क्रिप्ट मुझे उनका उपयोग करने नहीं देगा ...
संभावित डुप्लिकेट [जावास्क्रिप्ट सरणी (jQuery, coffeescript के साथ) से तत्व को हटाने के लिए साफ तरीका] (http://stackoverflow.com/प्रश्न/4825812/स्वच्छ-मार्ग-से-निकालने-तत्व-से-जावास्क्रिप्ट-सरणी-साथ-jquery-coffeescript) –