удаление запятой из объекта - PullRequest
0 голосов
/ 20 мая 2018

Я использую localStorage для хранения списка значений из массива.Поскольку я могу перенести его только в виде строки в новый сеанс, я должен сохранить его как строку.

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

Я попытался также включить тег разрыва, но он не удаляет запятую.

Как видите, я могу заставить элемент напечатать на новой строке, добавив p тегов, но запятая появляется, как мне удалить его?

enter image description here

Мой код:

var theLIst = document.getElementById('list');
var resetNotify = document.getElementById('reset-message');
var st = window.localStorage;
var nameArray = [];

theLIst.innerHTML = JSON.parse(st.getItem('names'));

function addName() {

    resetNotify.innerHTML = '';
    var name = document.getElementById('names');
    nameArray = JSON.parse(st.getItem('names'));


    if ( nameArray != null) {
        nameArray.join('');
        nameArray.push("<p>" + name.value + "</p>");

    } else {
        console.log('The Array has been purged. Resetting.')
        nameArray = [];
        nameArray.push("<p>" + name.value + "</p>");

    }

    st.setItem("names", JSON.stringify(nameArray));
    console.log(nameArray);
    name.value = '';
    theLIst.innerHTML = JSON.parse(st.getItem('names'));
}

function clearArray() {
    st.clear();
    nameArray = [];
    console.log(nameArray);
    theLIst.innerHTML = '';
    resetNotify.innerHTML = 'Array has been purged.';
}

1 Ответ

0 голосов
/ 20 мая 2018

Я нашел решение (хотя и немного хакерское).Как оказалось, мне нужно было просто взять мой объект localStorage и превратить его в массив с помощью Array.from ().Мне пришлось это сделать, потому что я не мог использовать методы .join (), .split () и т. Д., Которые могли бы сделать мою жизнь намного проще!

Я взял новое значение, обработав его независимо отмассив, где я хранил свои записи.Это позволило мне .join ('') значения

(простите за джанки код)

Мой код:

var theLIst = document.getElementById('list');
var resetNotify = document.getElementById('reset-message');
var recordCounter = document.getElementById('record-counter');
var st = window.localStorage;
var entry = st.clickcount;
var nameArray = [];
var newArr;

theLIst.innerHTML = st.getItem('names').replace(/[\[\],"]+/g,'');

function addName() {

    resetNotify.innerHTML = '';

    var name = document.getElementById('names');
    nameArray = JSON.parse(st.getItem('names'));
    entry = Number(entry)+1;
    newArr = makeArr(nameArray);

    if ( nameArray != null) {
       nameArray.push("<p class='name-entry'>"+name.value+"</p>");

    } else {
        nameArray = [];
        nameArray.push("<p class='name-entry'>"+name.value+"</p>");

    }

    st.setItem("names", JSON.stringify(nameArray));
    name.value = '';

    if (!newArr[0]) {
        entry = 1;
        theLIst.innerHTML = nameArray;
        recordCounter.innerHTML = "Records: " + entry;
    } else {
        theLIst.innerHTML = newArr[0].join('');
        recordCounter.innerHTML = "Records: " + entry;
    }
    JSON.parse(st.getItem('names'));    
}

function makeArr() {
    return Array.from(arguments);
}

function clearArray() {
    st.clear();
    nameArray = [];
    console.log(nameArray);
    theLIst.innerHTML = '';
    resetNotify.innerHTML = 'Array has been purged.';
}

Я понял, что у меня нетспособ обойти тот факт, что я работаю со строкой каждый раз, когда я обновляю свой браузер, поэтому я использую некоторое регулярное выражение для удаления лишних символов, чтобы я мог отобразить свой список при обновлении, это сработало для меня.

theLIst.innerHTML = st.getItem('names').replace(/[\[\],"]+/g,'');

Это вернул список чистых записей в мой HTML.Я также добавил счетчик записей, чтобы отслеживать мои записи. enter image description here

Спасибо за ваш вклад всем!Надеюсь, это кому-нибудь пригодится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...