जवाबों:
आप स्ट्रिंग्स.split() की एक सरणी प्राप्त कर सकते हैं , फिर उन्हें इस तरह संख्याओं में बदलने के लिए लूप करें:
var myArray = "14 2".split(" ");
for(var i=0; i<myArray.length; i++) { myArray[i] = +myArray[i]; }
//use myArray, it's an array of numbers
+myArray[i]बस एक त्वरित तरीका संख्या रूपांतरण करने के लिए है, यदि आप उन्हें अच्छी पूर्णांकों तुम सिर्फ कर सकते हैं कर रहे हैं:
for(var i=0; i<myArray.length; i++) { myArray[i] = parseInt(myArray[i], 10); }
myArray.forEach(function(x,y,z){ z[y]=x|0 })
.min.jsऔर .jsयदि आप अपने कोड को उजागर करना चाहते हैं ... तो याद रखें कि minification अस्पष्टता के लिए नहीं है (या ऐसा नहीं होना चाहिए, क्योंकि यह उसके लिए बेकार है), यह HTTP ओवरहेड को कम करने के लिए है - एक तेज़ पृष्ठ लोड अपने उपयोगकर्ताओं के लिए।
आधुनिक ब्राउज़रों के लिए एक त्वरित:
'14 2'.split(' ').map(Number);
// [14, 2]`
एसओ ... पुराना धागा, मुझे पता है, लेकिन ...
@ रोकोमुसोलीनो की अच्छी पकड़ थी; यहाँ एक विकल्प है:
टी एल; डॉ:
const intArray = [...("5 6 7 69 foo 0".split(' ').filter(i => /\d/g.test(i)))]
गलत :"5 6 note this foo".split(" ").map(Number).filter(Boolean); // [5, 6]
यहां सूचीबद्ध अधिक सुरुचिपूर्ण समाधानों में एक सूक्ष्म दोष है, विशेष रूप से @amillara और @Marcus 'अन्यथा सुंदर उत्तर।
समस्या तब होती है जब स्ट्रिंग सरणी का एक तत्व पूर्णांक जैसा नहीं होता है, शायद किसी इनपुट पर सत्यापन के बिना। एक आकस्मिक उदाहरण के लिए ...
समस्या:
var effedIntArray = "5 6 7 69 foo".split(' ').map(Number); // [5, 6, 7, 69, NaN]
चूँकि आप स्पष्ट रूप से PURE int सरणी चाहते हैं, इसलिए यह एक समस्या है। ईमानदारी से , मैंने इसे तब तक नहीं पकड़ा जब तक मैंने अपनी स्क्रिप्ट में एसओ कोड को कॉपी नहीं किया ...: /
(थोड़ा-कम-baller) फिक्स:
var intArray = "5 6 7 69 foo".split(" ").map(Number).filter(Boolean); // [5, 6, 7, 69]
इसलिए, अब जब आपके पास इंट स्ट्रिंग है, तो भी आपका आउटपुट एक शुद्ध पूर्णांक सरणी है। अन्य लोग ज्यादातर मामलों में वास्तव में सेक्सी होते हैं, लेकिन मैं अपने ज्यादातर रैंबल वैक्टिकली पेश करना चाहता था । यह अभी भी एक लाइनर है, हालांकि मेरे क्रेडिट के लिए ...
आशा है कि यह किसी को समय बचाता है!
.filter(Boolean)के साथ.filter( (x) => !Number.isNaN(x))
var result = "14 2".split(" ").map(function(x){return parseInt(x)});
parseInt()।
.mapअतिरिक्त पुस्तकालयों के बिना किसी भी ब्राउज़र में JS में उपयोग कर सकते हैं और समान कर सकते हैं ।
तुषार गुप्ता का जवाब होगा:
'14 2'.split(' ').map(x=>+x);
// [14, 2]`
कोड गोल्फ में आप 1 कैरेक्टर सेव करते हैं। यहां "+" "यूनरी प्लस" ऑपरेटर है, पार्सइंट की तरह काम करता है।
पहले रिक्त स्थान पर स्ट्रिंग विभाजित करें:
var result = '14 2'.split(' ');
फिर स्ट्रिंग्स के परिणाम सरणी को पूर्णांकों में बदलें:
for (var i in result) {
result[i] = parseInt(result[i], 10);
}
parseInt(), अन्यथा आपको वहां अष्टक मिल सकता है।
0, या 0xयह ठीक होना चाहिए।
के खिलाफ बिंदु parseInt-approach:
लैम्ब्डा का उपयोग करने और / या radixपैरामीटर देने की आवश्यकता नहीं है parseInt, बस उपयोग करें parseFloatया Numberइसके बजाय।
कारण:
यह काम कर रहा है:
var src = "1,2,5,4,3";
var ids = src.split(',').map(parseFloat); // [1, 2, 5, 4, 3]
var obj = {1: ..., 3: ..., 4: ..., 7: ...};
var keys= Object.keys(obj); // ["1", "3", "4", "7"]
var ids = keys.map(parseFloat); // [1, 3, 4, 7]
var arr = ["1", 5, "7", 11];
var ints= arr.map(parseFloat); // [1, 5, 7, 11]
ints[1] === "5" // false
ints[1] === 5 // true
ints[2] === "7" // false
ints[2] === 7 // trueयह छोटा है।
यह एक छोटा सा तेज है और कैश का फायदा उठाता है, जब parseInt-approach - नहीं :
// execution time measure function
// keep it simple, yeah?
> var f = (function (arr, c, n, m) {
var i,t,m,s=n();
for(i=0;i++<c;)t=arr.map(m);
return n()-s
}).bind(null, "2,4,6,8,0,9,7,5,3,1".split(','), 1000000, Date.now);
> f(Number) // first launch, just warming-up cache
> 3971 // nice =)
> f(Number)
> 3964 // still the same
> f(function(e){return+e})
> 5132 // yup, just little bit slower
> f(function(e){return+e})
> 5112 // second run... and ok.
> f(parseFloat)
> 3727 // little bit quicker than .map(Number)
> f(parseFloat)
> 3737 // all ok
> f(function(e){return parseInt(e,10)})
> 21852 // awww, how adorable...
> f(function(e){return parseInt(e)})
> 22928 // maybe, without '10'?.. nope.
> f(function(e){return parseInt(e)})
> 22769 // second run... and nothing changes.
> f(Number)
> 3873 // and again
> f(parseFloat)
> 3583 // and again
> f(function(e){return+e})
> 4967 // and again
> f(function(e){return parseInt(e,10)})
> 21649 // dammit 'parseInt'! >_<सूचना: फ़ायरफ़ॉक्स में parseIntलगभग 4 गुना तेजी से काम होता है, लेकिन फिर भी यह दूसरों की तुलना में धीमा है। कुल में: +e< Number< parseFloat<parseInt
let idsArray = ids.split(',').map((x) => parseInt(x));
हमें विभाजित समारोह :
var splitresult = "14 2".split(" ");
for(var i=myArray.length; i--;) myArray[i] = myArray[i]|0;बिटवाइज रूपांतरण और छोटे लूपिंग का उपयोग करके