将100000位数字的字符串中的一个元素每次追加1位数字

Appending 1 digit at a time to an element from a 100,000 digit string?

本文关键字:数字 元素 一个 追加 1位 字符串 100000位      更新时间:2023-09-26

目标:我想用100000个π的数字填满一页,一次一个数字。以下是我迄今为止所拥有的:http://jsfiddle.net/xnW6V/

现在它只是从一个变量中重复相同的值。我需要做的是有一个10,00长的变量(我从这里开始:http://www.geom.uiuc.edu/~huberty/math5337/groupe/digitals.html)对于每个setInterval事件,向div添加一个新数字。

我提到的是字符串的大小,以防传统方法出现问题。

谢谢。

var i = 0,
    pi = '3.1415926535897932384626433832795049445',
    max = pi.length,
    div = $('div'),
    timer = setInterval(function() {
          div.append(pi.charAt(i++));
          i == max && clearInterval(timer);
    }, 50);

小提琴在这儿:http://jsfiddle.net/yBtPE/


p.S.您确定要这样做吗?在将其推向生产站点之前,您应该认真地进行一些性能测试。

听起来最好的方法是对长PI数字字符串进行硬编码,并定期增加显示给用户的跨度

(function() {
  // You'll need to expand to the 100,000 digits you want to show. Shortened here
  // since it's a sample 
  var pi = "3.141592653589793238462643383279502884197169399375105820974944592307816406286 208998628034825342117067982148086513282306647093844609550582231725359408128481";
  var index = 5;
  $('div').text(pi.substring(0, 5));
  var timer = setInterval(function() {
    $('div').append(pi[index]);
    index++;
    if (index === pi.length) {
      clearInterval(timer);
    }
  });
})();

Fiddle:http://jsfiddle.net/xnW6V/3/

我喜欢JaredPar的方法,但这里有一种不同的方法(类似于现在的方法)。只需将PI存储为字符串,一次显示一个字符:

// var clipped so the SO markdown parser won't hang    
var bigPI = "3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460";
var current = 0;
setInterval(function() {
    $("div").append(bigPI.charAt(current));
    current++;
}, 50);

工作jsfiddle

注意

建议您在current == bigPI.length时停止计时器。