यह एक साधारण समस्या है, और मैंने इसे पहले भी किया है। मुझे अभी याद नहीं है कि कैसे, या वास्तव में इसे क्या कहा गया था।
अजगर में मैं यह कर सकता हूँ:
arr = ['one', 'two']
one, two = arr
मैं जावास्क्रिप्ट में कैसे करूँ?
यह एक साधारण समस्या है, और मैंने इसे पहले भी किया है। मुझे अभी याद नहीं है कि कैसे, या वास्तव में इसे क्या कहा गया था।
अजगर में मैं यह कर सकता हूँ:
arr = ['one', 'two']
one, two = arr
मैं जावास्क्रिप्ट में कैसे करूँ?
जवाबों:
यह वर्तमान में एकमात्र क्रॉस-ब्राउज़र-संगत समाधान AFAIK है:
var one = arr[0],
two = arr[1];
ES6 विनाशकारी असाइनमेंट की अनुमति देगा:
let [x, y] = ['foo', 'bar'];
console.log(x); // 'foo'
console.log(y); // 'bar'
या, अपने प्रारंभिक उदाहरण से चिपके रहने के लिए:
var arr = ['one', 'two'];
var [one, two] = arr;
आप एक डिफ़ॉल्ट मान भी बना सकते हैं:
const [one = 'one', two = 'two', three = 'three'] = [1, 2];
console.log(one); // 1
console.log(two); // 2
console.log(three); // 'three'
यह विनाशकारी काम है । आप इसे निम्न सिंटैक्स वाले कुछ ब्राउज़रों में कर सकते हैं:
[one, two] = arr;
यह नवीनतम ब्राउज़र और तरह transpilers में से कुछ में समर्थित है कोलाहल और Traceur । यह ECMAScript 4 के साथ शुरू की गई एक विशेषता थी जो बाद में ECMAScript हार्मोनी बन गई, जो अंततः ES 2015 बन गई।
प्रश्न पुराना है, लेकिन मैं इस विकल्प (2016) समाधान को पोस्ट करना पसंद करता हूं: एक भी प्रसार ऑपरेटर "..." का उपयोग कर सकता है ।
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_operator
let xAndY = [42, 1337];
let f = function(x, y) { return x + y; };
f(...xAndY);
गंभीर के विचार का कार्यान्वयन।
http://jsfiddle.net/RichAyotte/6D2wP/
(function(a, b, c, d) {
console.log(a, b, c, d);
}.apply(this, ['a', 'b', 'c', 'd']));
var one = arr[0];
var two = arr[1];
varमें वैश्विक दायरे को बदलने से चर को रोकने के लिए उपयोग करना चाहिए ।
varदो अलग-अलग varघोषणाओं के बजाय एक ही दायरे में सभी स्कोर्स को घोषित करना बेहतर होगा ।
कॉफीस्क्रिप्ट में यह है: http://jashkenas.github.com/cfish-script/#pattern_matching
और, पृष्ठ के शीर्ष से उद्धृत:
"कॉफीस्क्रिप्ट एक छोटी सी भाषा है जो जावास्क्रिप्ट में संकलित है। इसे जावास्क्रिप्ट के कम अस्थिर बच्चे के भाई के रूप में सोचें - एक ही जीन, लगभग एक ही ऊंचाई, लेकिन शैली का एक अलग अर्थ। बोनस उपहारों के एक मुट्ठी भर के अलावा, कॉफीस्क्रिप्ट में एक बयान। -जावास्क्रिप्ट में अपने समकक्ष के साथ एक, यह कहने का सिर्फ एक और तरीका है। "