2013-12-19 2 views
0

Вы найдете ниже код:Javascript - хранить большой диапазон чисел в массиве

var range = new Array(); 
var start = -15e9; 
var end = 15e9; 
for(var i=start; i<end; i++){ 
    range.push(i); 
} 

Когда я запускаю этот код в jsfiddle или в браузере, он получает разбился. Здесь необходимо хранить диапазон от -15x10^9 до 15x10^9.

Что является лучшим способом (с точки зрения производительности) для хранения такого большого диапазона в javascript ?????

+1

Зачем вам это нужно? Подумайте об объеме памяти, которую вы пытаетесь выделить за один раз - вот почему он рушится. Если вы можете расширить вопрос о том, почему позади этого требования, мы можем помочь. – Paddy

+0

Что вам нужно для хранения этого диапазона? Может быть, тот, кто сказал вам это, означал 'range = {start: -15e9, end: 15e9}'? – Bergi

+1

Объем памяти 30 * 10^9 * 8 байт ... 2,4 * 10^11 байт. Это довольно много для веб-страницы :) – Paddy

ответ

1

Вы должны спросить себя, какие операции вам нужны для вашего диапазона. Если, например, вы хотите только проверить, находится ли число в диапазоне, вы можете сделать что-то вроде:

function range(lo, hi) { 
    return function(number) { 
    return (number >= lo) && (number <= hi); 
    } 
} 

var r1 = range(-15e9, 15e9); 
r1(0); // true 
Смежные вопросы