为什么循环数组比JavaScript本地更快indexOf?是否有错误或我不考虑的事情?我希望原生实现会更快.
For Loop While Loop indexOf
Chrome 10.0 50,948,997 111,272,979 12,807,549
Firefox 3.6 9,308,421 62,184,430 2,089,243
Opera 11.10 11,756,258 49,118,462 2,335,347
Run Code Online (Sandbox Code Playgroud)
在Javascript中我怎么能找到0到100之间的素数?我已经考虑过了,我不知道如何找到它们.我想做x%x,但我发现了明显的问题.这是我到目前为止所做的:但不幸的是,这是有史以来最糟糕的代码.
var prime = function (){
var num;
for (num = 0; num < 101; num++){
if (num % 2 === 0){
break;
}
else if (num % 3 === 0){
break;
}
else if (num % 4=== 0){
break;
}
else if (num % 5 === 0){
break;
}
else if (num % 6 === 0){
break;
}
else if (num % 7 === 0){
break;
}
else if (num % 8 === 0){
break;
}
else if (num …Run Code Online (Sandbox Code Playgroud) 我试图从Project Euler 解决Q10.我使用JavaScript和Sieve of Atkins算法来解决问题.当我在浏览器(Safari和FF)上运行代码时,浏览器会提示脚本没有响应.即使我让脚本继续下去,我也没有得到答案.我知道有同样的Project Euler问题的线程.
我的问题是: -
1.到目前为止,JavaScript能够为浏览器解决这些复杂的数学问题吗?
2.还有其他环境我可以测试我的JavaScript程序吗?
谢谢你们.
我最近阅读了有关大量数字的更快的Eratosthenes分段筛网实施方案的信息。
以下是相同的实现:
function sieve(low, high) {
var primeArray = [], ll = Math.sqrt(low), output = [];
for (var i = 0; i < high; i++) {
primeArray[i] = true;
}
for (var i = 2; i <= ll; i++) {
if (primeArray[i]) {
for (var j = i * i; j < high; j += i) {
primeArray[j] = false;
}
}
}
for (var i = 2; i < ll; i++) {
if(primeArray[i])
{
var segmentStart = Math.floor(low/i) * …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用此jquery 将数组(由此代码生成)中的数据输出到简单网页中的div:
$('#submit').click(function(e) {
e.preventDefault();
var num = $('#userInput').val();
var primes = sieve(num); // sieve() produces array of prime numbers
console.log(primes);
$('#answer').html(primes);
});
Run Code Online (Sandbox Code Playgroud)
控制台正在按照我想要的方式记录数组(即2,3,5,7,11,13等),但#answer中的内容显示时没有任何格式(23571113等).
如何以更易读的格式显示数据?我尝试过使用.split和.join添加逗号或换行符,但没有快乐......