2012-02-13 10 views
6

मुझे पता है कि जेएसलिंट केवल एक गाइड है और आपको नमक के अनाज के साथ जो कुछ कहना है, उसे लेना चाहिए, हालांकि, मैं उत्सुक हूं कि मैं पूरे कार्य को फिर से लिखने के बिना इस चेतावनी को कैसे हल कर सकता हूं ।स्ट्रिंग स्प्लिट के साथ जेएस लिंट ऐरे लिटल नोटेशन

function randomString(length) { 
    var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz'.split(''), 
    str = '', 
    i; 

    if (!length) { 
     length = randomNumber(chars.length); 
    } 

    for (i = 0; i < length; i++) { 
     str += chars[randomNumber(chars.length)]; 
    } 
    return str; 
} 

जे एस एक प्रकार का वृक्ष बताता है मुझे: यहाँ हित के कार्य है "जे एस एक प्रकार का वृक्ष:। शाब्दिक शृंखला अंकन [] का उपयोग करें" और यह string.split() के साथ लाइन को इंगित कर रहा है। मैं पूरे फ़ंक्शन को फिर से लिखने के बिना जेएसलिंट को कैसे संतुष्ट कर सकता हूं? क्या यह भी संभव है?

मुझे पता है कि यादृच्छिक तार उत्पन्न करने के अन्य तरीके हैं; मुझे इस विधि का उपयोग कर JSLint चेतावनी को हल करने में रुचि है।

+6

तुम भी उस मामले में एक सरणी की जरूरत नहीं है, आप स्ट्रिंग के रूप में छोड़ और 'chars.charAt इस्तेमाल कर सकते हैं (...) '। शायद जेएसलिंट को संतुष्ट करने के लिए पर्याप्त है। –

+0

यह एक अच्छा मुद्दा है और मैं इसे अंत में बदल सकता हूं। हालांकि, मैं अभी भी जानना चाहता हूं कि जेएसलिंट मुझे इस विशेष उदाहरण में सरणी शाब्दिक नोटेशन का उपयोग करने की अपेक्षा करता है। – arb

+0

डुनो, लेकिन यहां स्रोत है;) https://github.com/douglascrockford/JSLint/blob/master/jslint.js#L3578 –

उत्तर

3

आप चेतावनी से बचने के लिए गुंजाइश के रूप में तार के साथ स्ट्रिंग प्रोटोटाइप विभाजन समारोह कॉल कर सकते हैं JSLint शिकायत के रूप में शिकायत एक स्ट्रिंग विधि है।

देखें: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/split

यह भी शिकायतों के बिना के माध्यम से पारित करने के लिए लगता है:

var alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz', 
chars = alphabet.split(""); 
4

यहाँ शाब्दिक सरणी-अंकन में अपने सरणी है:

[ 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'T', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' ] 

JSLint शायद यह सुझाव दिया है, क्योंकि इस तरह दुभाषिया रनटाइम के दौरान स्ट्रिंग विभाजित करने के लिए नहीं है, बल्कि पहले से ही सरणी का उपयोग करने के लिए तैयार है ।

बस इस पीएचपी-कोड के साथ उत्पन्न:

var chars = String.prototype.split.call('ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz', ''), 

क्यों पता नहीं है:

php > $chars = str_split('ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz'); 
php > echo "[ '".implode("', '", $chars)."' ]"; 
[ 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'T', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' ] 
php > 
+4

जटिल PHP क्यों? बस अपने ब्राउज़र के * जावास्क्रिप्ट * कंसोल में 'JSON.stringify (' एबीसी ... xyz'.split ('')) टाइप करें :-) – Bergi

+0

@ बर्गि मैं जेएस के मुकाबले PHP के साथ बेहतर हूं, वैसे भी धन्यवाद :) – TimWolla

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