Добавление элементов в массив
Привет, подскажите, будьте любезны)
Хочу добавлять элементы в массив при каждом клике, при этом чтобы к элементу автоматически подставлялся ключ 1, 2, 3.. var arr = {}; var id = 1; $('button').click(function() { var item = {}; item['name'] = 'имя'; item['image'] = 'изображение'; arr = {id: item}; id++; }); Такая конструкция не срабатывает. Строится массив вида: id:{name:имя, image: изображение} а элементы не добавляются, а перезаписываются. Переменная массива id в массиве не читается как переменная. Заранее спасибо. |
arr = {[id]: item};
|
Большое спасибо :dance: :dance: :dance:
|
Еще вопрос, хочу данный массив записать в local storage. Как вычислять последний ключ массива для того чтобы добавлять уникальное значение ключа?
var arr = {}; if(!isEmpty(localStorage.getItem('arr')) { var id = 1; } else { // var id = ??? } $('button').click(function() { var item = {}; item['name'] = 'имя'; item['image'] = 'изображение'; arr = {[id]: item}; localStorage.setItem('arr', JSON.stringify(arr)); id++; }); |
И еще - элемент новый не добавляется а перезаписывается
|
Math.max(...Object.keys(JSON.parse(localStorage.getItem('arr'))))+1 А как добавлять, если arr = {} всегда? |
Цитата:
arr[id] = item; |
Цитата:
Выдает ошибку Uncaught TypeError: Cannot set property '2' of null |
<button>Add</button> <pre></pre> <script> var arr = {}, id = 0; document.querySelector('button').addEventListener('click', function() { var item = {time: Date.now()} arr[++id] = item; document.querySelector('pre').textContent = JSON.stringify(arr, null, '\t') }); </script> Работает? Что-то вы не так делаете. |
Цитата:
|
Часовой пояс GMT +3, время: 20:57. |