2012-12-01 13 views
5

संभव डुप्लिकेट:
Javascript equivalent of PHP’s list()पीएचपी बराबर और जावास्क्रिप्ट में विस्फोट

मैं इस लाइन की लेकिन जावास्क्रिप्ट में एक बराबर हैं:

<?php list($Id, $Iduser, $Idmany) = explode("," , $IdALL); ?> 

कहाँ:

$IdALL = '1, 2, 3'; 

क्या जावास्क्रिप्ट के साथ ऐसा करने का कोई तरीका है और यह सभी आधुनिक ब्राउज़रों पर समर्थित हो सकता है?

+0

जावास्क्रिप्ट 1.7 है [विनाशकारी असाइनमेंट] (https://developer.mozilla.org/en-US/docs/JavaScript/New_in_JavaScript/1.7#Destructuring_assignment_%28Merge_into_own_page.2Fsection%29) लेकिन केवल gecko में जावास्क्रिप्ट 1.7 का कोई वास्तविक कार्यान्वयन है और [हम bkit बुरी तरह से व्यवहार करता है] (https://bugs.webkit.org/show_bug.cgi?id=23097)। –

+0

@ मुथुकुमारन जो सिर्फ मेरे दिमाग को उड़ाता है। मुझे उम्मीद है कि यह जल्द ही व्यापक रूप से समर्थित हो जाएगा। –

उत्तर

7
var values = "1, 2, 3".split(", "); 
var keys = ["Id", "Iduser", "Idmany"]; 
var final = {}; 

for(var i = 0; i < values.length; i++){ 
    final[keys[i]] = values[i]; 
} 
बेशक

, पठनीयता की कीमत पर आप बयान के लिए में यह सब कर सकता है:

for(var i = 0, values = "1, 2, 3".split(", "), keys = ["Id", "Iduser", "Idmany"], final = {}; i < values.length; i++){ 
    final[keys[i]] = values[i]; 
} 

चर तो के रूप में पहुँचा जा सकता है इस प्रकार है:

alert(final.Id); 
alert(final.Iduser); 
alert(final.Idmany); 
+0

धन्यवाद असद, लेकिन मैं परिवर्तनीय रूप से कैसे उपयोग कर सकता हूं के लिए" ? मैं उन्हें अंदर के अंदर चेतावनी देता हूं और यह काम करता है, लेकिन इसके बाहर नहीं है! –

+2

@SamiElHilali आपको उन्हें 'अंतिम' ऑब्जेक्ट के गुणों के रूप में एक्सेस करना होगा। मैंने इसे अपने जवाब में जोड़ा है। –

+0

आप बस कमाल हैं। आपका बहुत बहुत धन्यवाद ! –

1

नहीं, जावास्क्रिप्ट वर्तमान में list निर्माण (जिसे "विनाशकारी असाइनमेंट" कहा जाता है) के बराबर नहीं है। आपको अलग-अलग चर आवंटित करना होगा। इसके लिए ES.next may very well have something, लेकिन वर्तमान ES5 (या पुराने ब्राउज़र पर ES3) नहीं।

तो सबसे अच्छा तुम कर सकते हो थोड़ा अधिक अजीब है:

var idAll = "1, 2, 3"; 
var parts = idAll.split(/\s*,\s*/); 
var id = parts[0]; 
var idUser = parts[1]; 
var idMany = parts[2]; 

ध्यान दें कि आईडी तार हो जाएगा; यदि आप उन्हें संख्याएं बनाना चाहते हैं, तो आपको उन्हें पार्स करना होगा (parseInt एक विकल्प है, +parts[0] et। al के सामने एक और है; this answer विवरण में जाता है)। http://phpjs.org/functions/

यहाँ आप सभी कार्यों js को php में उपलब्ध हैं:

+0

'+' के साथ यह विचार बहुत अच्छा है। धन्यवाद। – Hafenkranich

1

कृपया साइट देखें।

+1

यह उस साइट से सामान के साथ भी नहीं किया जा सकता है। जावास्क्रिप्ट में आवश्यक भाषा संरचना नहीं है ताकि आप एक ही समय में एकाधिक चर निर्दिष्ट कर सकें (और इसे भाषा समर्थन की आवश्यकता होगी, आप इसे करने के लिए केवल एक फ़ंक्शन नहीं लिख सकते हैं)। –

+1

यह सवाल का जवाब नहीं देता है। मुझे आपके लिंक से 'सूची' फ़ंक्शन नहीं मिला। –

+0

@Muthu कृपया जावास्क्रिप्ट में सूची() कार्यान्वयन कृपया लिंक का पालन करें: http://solutoire.com/2007/10/29/javascript-left-hand-assignment/ –

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