相关疑难解决方法(0)

Javascript性能:虽然vs For循环

在技​​术采访中的另一天,问题之一是"你如何优化Javascript代码"?

令我惊讶的是,他告诉我,虽然循环通常比循环更快.

这是真的吗?如果是,那为什么呢?

javascript optimization

28
推荐指数
2
解决办法
2万
查看次数

JavaScript的内置Number()方法似乎返回了一个不正确的值

我已经制作了一个转换数字基数的程序.我认为,如果A-F输出中没有字符,将数字作为数字而不是字符串返回会很方便(即使我将基数为2的数字作为常规十进制数字返回,无论如何).

出于某种原因,当我将A3B232转换为Binary(应该是10100001101011001002 [ Wolfram | Alpha source])时,我得到了1010000110101100200.那里有两个,那不是二元的!返回值的最后一行代码是:

return (toBase <= 10) ? Number(result) : result;
Run Code Online (Sandbox Code Playgroud)

这基本上适用于所有测试,直到我决定使用上面的base-32数字.我认为我的程序正在执行除法/余数步骤不正确,所以我让它在返回值之前打印出结果.它正确地给出了1010000110101100100.所以,我Number()直接在Chrome的控制台中测试了这个方法.这就是发生的事情:

> Number("1010000110101100100")
> 1010000110101100200
Run Code Online (Sandbox Code Playgroud)

我误解了这种Number()方法的作用吗?为什么将由所有Ones和Zeroes组成的字符串转换为包含Ones,Zeroes和Twos的数字

javascript numbers built-in

4
推荐指数
1
解决办法
77
查看次数

如何递归生成Fibonacci序列的数组?

我已经看到几个关于生成给定斐波那契序列的帖子,比如这个.但是,我无法弄清楚如何n使用递归生成给定给定的fibonnaci数的序列(返回数组).我明显没有用,但我真的无法弄清楚如何做到这一点.

var fibArray = function(n) {
    var f = [];
    n < 2 ? f.push(n) : f.push(fibArray(n-1) + fibArray(n-2));
    return f;
};
Run Code Online (Sandbox Code Playgroud)

javascript arrays recursion fibonacci

3
推荐指数
2
解决办法
2225
查看次数

Javascript懒惰评估斐波那契函数

之前我在Scala中使用延迟评估时提出了一个问题.我试图在Scala中编写以下Haskell函数:

fib a b = c : (fib b c)
   where c = a+b
Run Code Online (Sandbox Code Playgroud)

这个问题的答案是我不能使用Lists,而应该使用Streams.现在我想在Javascript中做同样的事情.我翻译了这个功能,并在这个网站上试了一下:

function fib(a,b) {
    c = a+b;
    return [c] + fib(b,c);
}

var res = fib(0,1).slice(0,10);

console.log(res);
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

RangeError: Maximum call stack size exceeded
Run Code Online (Sandbox Code Playgroud)

Javascript有办法做到这一点吗?

javascript haskell lazy-evaluation

2
推荐指数
1
解决办法
1506
查看次数