सरणी के आधार पर पैरामीटर के साथ फ़ंक्शन कैसे बनाएं

मेरे पास एक सरणी है जिसमें फ़ंक्शन के पैरामीटर सिम्बोलाइज़ होंगे।

उदाहरण के लिए:

var params = ['name', 'age', 'email'];

और यह जानकारी किसी अन्य एंडपॉइंट द्वारा बनाई गई है जो इस सरणी को वापस कर देती है। और इस सरणी से मैं इस तरह एक समारोह बनाना चाहता हूं:

function (name, age, email) {
    //...
    //my custom code
    return result;
}

तो जैसा कि आप देख सकते हैं कि मैं स्वचालित रूप से फ़ंक्शंस बनाना चाहता हूं और उस क्रिया के तर्क के रूप में प्रत्येक सरणी तत्व का उपयोग करना चाहता हूं।

क्या eval का उपयोग किए बिना इसे प्राप्त करने का कोई तरीका है?

ऐसा लगता है <�कोड> नया फ़ंक्शन ('नाम', 'आयु', 'ईमेल', 'एफएन बॉडी') फ्लाई पर भी उत्पन्न नहीं किया जा सकता है।

अग्रिम में धन्यवाद

1
आप क्या करना चाहते हैं कोई समझ नहीं आता है। नामित पैरामीटर के साथ "बनाने" कार्यों में कोई बात नहीं है। असली समस्या क्या है?
जोड़ा लेखक Alex Turpin, स्रोत
क्या आपको वाकई ऐसा करने की ज़रूरत है? आप केवल एक सरणी या ऑब्जेक्ट को पैरामीटर के रूप में उम्मीद कर सकते हैं, और वहां से आपको जो चाहिए उसे प्राप्त करें।
जोड़ा लेखक Radoslav Georgiev, स्रोत

3 उत्तर

var a = Function.apply( {}, ["name", "age", "email", "return email;"] );

/*function anonymous(name,age,email) {
return email;
}*/

a(1,2,3);

//3

इसके बावजूद eval पर कोई ठोस लाभ नहीं है और आप जो करने की कोशिश कर रहे हैं वह शायद फ्लाई पर कोड में स्ट्रिंग का मूल्यांकन किए बिना अलग-अलग किया जा सकता है

1
जोड़ा

यदि आप पैरामीटर की सरणी के साथ फ़ंक्शन को कॉल करना चाहते हैं, तो लागू । उदाहरण के लिए:

function foo(a, b, c) {
    alert(a + b + c);
}
foo.apply(null, [1, 2, 3]);
0
जोड़ा

आप .apply() का उपयोग कर सकते हैं। सुनिश्चित करें कि फ़ंक्शन बॉडी सरणी का अंतिम सदस्य है।

Function.apply( null, your_array );
0
जोड़ा