2016-10-18 2 views
0

Я пытаюсь построить функцию, чтобы добавить элементы (из полого ввода) в массиве:функции для добавления входных значений в массиве в JavaScript/JQuery

function printPeople(idUser){ 
    var name = $('#name').val(); 
    var surname = $('#surname').val(); 
    var age = $('#age').val(); 

    var people = []; 


    people.push({ 
        "id": idUser, 
        "name": name, 
        "surname": surname, 
        "age": age 
}); 

Everytime I нажмите кнопку «подписаться» Мне нужно добавить новую информацию в массиве, моя цель получить массив так:

[{ 
"id": id, 
"nome": name, 
"cognome": surname, 
"age": age 
}, 
{ 
"id": id, 
"nome": name, 
"cognome": surname, 
"age": age 
}, etc] 

в моем случае я создал пустой массив, а затем добавить элементы, но каждый раз, когда я нажимаю кнопку, массив снова становится пустым ... массив не существует вне функции, поэтому мне нужно создать его в начале (и, следовательно, arr ay будет пустым каждый раз, когда я вызываю функцию.). Любая помощь?

ответ

3

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

var people = []; 

function printPeople(idUser){ 
    var name = $('#name').val(); 
    var surname = $('#surname').val(); 
    var age = $('#age').val(); 

    people.push({ 
        "id": idUser, 
        "name": name, 
        "surname": surname, 
        "age": age 
    }); 
} 
0

Функция сфера воссоздает новый массив при вызове функции, так что лучший способ справиться с этим будет объявить функцию вне

var people = []; 

function printPeople(idUser){ 
    var name = $('#name').val(); 
    var surname = $('#surname').val(); 
    var age = $('#age').val(); 

    people.push({ 
        "id": idUser, 
        "name": name, 
        "surname": surname, 
        "age": age 
    }); 
} 

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

Спасти: localStorage.setItem('peopleArray', JSON.stringify(people));

Получить: JSON.parse(localStorage.getItem('peopleArray'));

Смежные вопросы