如何将数组中的数字字符串转换为JavaScript中的数字?

时间:2016-03-12 01:30:32

标签: javascript

我想使用Fisher Yates shuffle算法在“。(点)”之后对来自Math.random()的每个整数进行混洗。我将它们分成字符串并使用Fisher Yates shuffle算法,但我仍然坚持如何将其转换回数字。

发件人: [“0”,“。”,“4”,“1”,“2”,“7”,“2”,“9”,“5”,“ 8“,”6“,”7“,”0“,”7“,”4“,”2“,”8“,”1“]

致: 0.4127295867074281

    var randomNum = Math.random();
    var stringNum = randomNum.toString();
    var stringArray = stringNum.split("");

    var i = stringArray;
    var j;
    var temp;

    while (--i > 1) {
        j = Math.floor(Math.random() * (i + 1));
        temp = stringArray[j];
        stringArray[j] = stringArray[i];
        stringArray[i] = temp;
    }

3 个答案:

答案 0 :(得分:3)

 #include <iostream>
 #include <string>
 #include <limits>  // Needed for numeric_limits

 using namespace std;

 bool is_input_valid(int n);
 int get_input();      

 int main() {

     int n = get_input(); 
     while ( !(is_input_valid(n)) )
     {
        n = get_input();
     }

     return 0;
 } 

 int get_input() {      
    int n;
    cout << "Error enter a number between 0 and 4000: \n" 
    cin >> n; 

    // If there was a problem reading the input, clear the input stream
    // and try again.
    if ( !cin )
    {
       cin.clear();
       cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
       return get_input();
    }

    return n;
 }

 bool is_input_valid(int n)
 {
    return ( n >= 0 && n <= 4000 );
 }

完整数字:

var str = "42";
var num = str * 1;

答案 1 :(得分:3)

首先加入数组,然后转换为数字Number(strArray.join(""))

&#13;
&#13;
var strArray = ["0", ".", "4", "1", "2", "7", "2", "9", "5", "8", "6", "7", "0", "7", "4", "2", "8", "1"];

var num = Number(strArray.join(""));

// this prints 0.4127295867074281
document.write(num);
&#13;
&#13;
&#13;

答案 2 :(得分:0)

我对逻辑感到惊讶,但对于每种语言都不是很多,但这里有一个基本的逻辑思想。请记住下面我正在连接

x = 0 y = 0

while(y> 10)

z =生成大于0且小于10的随机数;

x =&#34; x&#34; +&#34;。&#34; +&#34; z&#34;

结束

answer = x

回答=回答+ x