В textarea
записываются данные.
<textarea id="primeContainer">
var text = document.getElementById('primeContainer')
localStorage.setItem('key', text);
var value = localStorage.getItem('key');
localStorage('key'); // удалит данные под переданным ключом
localStorage.clear(); // полностью очистит локальное хранилище
try {
localStorage.setItem('key', 'text');
} catch (e) {
if (e === QUOTA_EXCEEDED_ERR) {
alert('Превышен лимит');
}
}
как правильно сохранить их в localStorage?
код: https://codepen.io/bogdan-melnik-the-animator/pen/dyXEgLo
В textarea нет никакого текста, соответсвенно оно и не может записать в локал сторедж. Сделайте обработчик события, и добавляйте в локал сторедж по событию. Но основная ошибка в том что вы в локал сторедж пытаетесь записать DOM элемент, а нужно вытащить само значение localStorage.setItem('key', text.value)
. И еще нужно закрывать textarea
var text = document.getElementById('primeContainer')
text.addEventListener('change', (e) => {
localStorage.setItem('key', text.value)
})
<textarea id="primeContainer">Some text</textarea>
Проблема не только в сохранении чисел. Вся бесполезность задачи основывается на том, что выбирается самый неоптимальный способ поиска простых чисел. Их бесполезно сохранять - это слишком медленно. Вы ищете числа от 0 до 2 миллионов, вот вам алгоритм, который за несколько секунд найдёт числа от 0 до 1 миллиарда. Можно и больше, но тогда запускайте не в браузере, а на nodejs. И это еще не самый оптимальный алгоритм, там есть что оптимизировать. Например, пропуск поиск простых чисел среди чётных чисел.
// Функция возвращает масиив простых чисел от 0 до 1073741824 (2**30)
function makeDict(){
// Лимит поиска
const lim = 2**30;
// Буфер
const buf = new Uint8Array(lim-1);
// Первые числа 0 и 1 сразу пометим не простыми числами
buf[0] = 1;
buf[1] = 1;
// Корень из лимита поиска
const sqrtLim = 2**15;
// Сам поиск чисел
// Алгоритм простой:
// Ищем следующее непростое число.
// Как нашли - помечаем все числа в буфере непростыми
// начиная с следующего числа и далее с шагом, равным числу.
// Например,
// нашли число 2, помечаем 4, 6, 8, 10, 12, 14...
// нашли число 3, помечаем 6, 9, 12, 15, 18, 21...
// число 4 - уже не простое, пропускаем
// нашли число 5, помечаем 10, 15, 20, 25, 30...
// число 6 - уже не простое, пропускаем
// нашли число 7, помечаем 14, 21, 28, 35, 42...
// и так до квадратного корня из лимита...
for(let i = 2; i< sqrtLim; i=next(buf,i)){
for(let p = 2*i; p< lim - 1; p += i){
buf[p] = 1;
}
}
// Подсчет количества найденных чисел
let count = 0;
for(let i = 2; i< lim-2; i++){
if(!buf[i]){
count++;
}
}
// Создаем массив по найденному количеству чисел
const dict = new Uint32Array(count);
// Запись этих чисел в новый массив
for(let i = 2, found = 0; i < lim-2; i++){
if(!buf[i]){
dict[found++] = i;
}
}
return dict;
// Функция ищет следующее непомеченное число в буфере
function next(buf,n){
for(let i = n+1; i < lim-2; i++){
if(!buf[i]){
return i;
}
}
return lim-1;
}
}
console.time('Поиск чисел');
const dict = makeDict();
console.timeEnd('Поиск чисел');
console.log('Найденно простых чисел:', dict.length);
console.log('Первые 100 чисел:', dict.slice(0, 100));
console.log('Последние 100 чисел:', dict.slice(dict.length-101, dict.length-1));
/**
Вывод:
Поиск чисел: 1.780s
Найденно простых чисел: 54400028
Первые 100 чисел: Uint32Array(100) [
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37,
41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89,
97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151,
157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223,
227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281,
283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359,
367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433,
439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503,
509, 521, 523, 541
]
Последние 100 чисел: Uint32Array(100) [
1073739679, 1073739683, 1073739721, 1073739739, 1073739749,
1073739767, 1073739817, 1073739853, 1073739859, 1073739881,
1073739883, 1073739893, 1073739911, 1073739917, 1073739937,
1073739949, 1073739983, 1073740013, 1073740049, 1073740061,
1073740067, 1073740079, 1073740123, 1073740127, 1073740133,
1073740139, 1073740147, 1073740163, 1073740177, 1073740183,
1073740189, 1073740201, 1073740249, 1073740379, 1073740391,
1073740403, 1073740439, 1073740463, 1073740477, 1073740489,
1073740501, 1073740517, 1073740523, 1073740529, 1073740537,
1073740541, 1073740543, 1073740567, 1073740571, 1073740609,
1073740649, 1073740691, 1073740693, 1073740697, 1073740781,
1073740783, 1073740793, 1073740807, 1073740819, 1073740847,
1073740853, 1073740879, 1073740909, 1073740933, 1073740951,
1073740963, 1073741047, 1073741077, 1073741101, 1073741173,
1073741189, 1073741197, 1073741213, 1073741237, 1073741287,
1073741309, 1073741311, 1073741329, 1073741371, 1073741381,
1073741387, 1073741399, 1073741419, 1073741441, 1073741467,
1073741477, 1073741503, 1073741527, 1073741561, 1073741567,
1073741621, 1073741651, 1073741663, 1073741671, 1073741689,
1073741717, 1073741719, 1073741723, 1073741741, 1073741783
]
*/
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Не получается скрыть картинку в fancybox, документации не нашел, documentgetElementById(wheel)
Помогите с кейсом,нужно сделать post запрос получить данные пользователя fio,inn,password и записать их в стейт потом отобразить в input и что бы администратор...
Делаю скрипт на jquery, который должен добавлять к определенному символу/словосочетанию/цифрам также определенные символы/словосочетания/цифрыНапример...
Я использую состояние все работает нормально, за исключением модального окнаВнутри состояния, я использую объекты, которые нормально отображаются...