Javascript 将用户输入插入到对象数组中

Javascript 将用户输入插入到对象数组中,javascript,arrays,Javascript,Arrays,我有一个包含用户邮政编码、地点和收集日期信息的对象数组。我希望能够为新注册用户插入新的邮政编码。“我的代码”在对象数组中搜索以查看邮政编码是否已存在,如果已存在,则通知用户已注册。这个很好用。有人能帮我在对象数组中添加一个新的邮政编码吗?我已经尝试过了,正如你在下面看到的,但它不起作用。谢谢 var postcodes = [ { postcode: "BT486AA1", place: "Londonderry Park, Londonderry", d

我有一个包含用户邮政编码、地点和收集日期信息的对象数组。我希望能够为新注册用户插入新的邮政编码。“我的代码”在对象数组中搜索以查看邮政编码是否已存在,如果已存在,则通知用户已注册。这个很好用。有人能帮我在对象数组中添加一个新的邮政编码吗?我已经尝试过了,正如你在下面看到的,但它不起作用。谢谢

var postcodes =
        [
            { postcode: "BT486AA1", place: "Londonderry Park, Londonderry", dates: ["16/05/2014", "18/06/2014", "19/07/2014"] },
            { postcode: "BT486AB1", place: "Londonderry Park, Londonderry", dates: ["17/05/2014", "11/06/2014"] },
            { postcode: "BT486AD1", place: "Londonderry Park, Londonderry", dates: ["14/05/2014", "20/06/2014"] },
            { postcode: "BT486EL1", place: "Londonderry Park, Londonderry", dates: ["16/05/2014", "18/06/2014", "19/07/2014"] },
            { postcode: "BT171JR6", place: "Londonderry Park, Londonderry", dates: ["17/05/2014", "11/06/2014"] },
            { postcode: "BT171JR7", place: "Ballyregan Park, Londonderry", dates: ["14/05/2014", "20/06/2014"] },
            { postcode: "BT171JR1", place: "Ballyregan Park,Londonderry", dates: ["16/05/2014", "18/06/2014", "19/07/2014"] },
            { postcode: "BT171JR2", place: "Ballyregan Park, Londonderry", dates: ["17/05/2014", "11/06/2014"] },
            { postcode: "BT181JR3", place: "Ormeau Park, Londonderry", dates: ["14/05/2014", "20/06/2014"] },
            { postcode: "BT181JR4", place: "Ormeau Park, Londonderry", dates: ["16/05/2014", "18/06/2014", "19/07/2014"] },
            { postcode: "BT191JR6", place: "Main Street, Londonderry", dates: ["17/05/2014", "11/06/2014"] },
            { postcode: "BT191JR7", place: "Main Street, Londonderry", dates: ["14/05/2014", "20/06/2014"] }
        ];


function RegisterUser() {

    for (var i = 0; i < postcodes.length; i++) {
        var postCode = document.getElementById("pc2").value;

        if (postcodes[i].postcode === postCode) {
            alert("The postcode you entered is already registered");
        }
        else {
            AddUser();
        }


    }
}


function AddUser() {

    var postCode2 = document.getElementById("pc2").value
    var newUser = postcodes[i].postcode;

    for (var i = 0; i < postcodes.length; i++) {
            if (newUser.indexOf(postCode2) === -1) {
                postcodes[i].postcode.push(postCode2);


                alert("Postcode Registered : " + postCode2 + " Smart Waste Management Scheme will be in contact regarding your step towards smart waste");
            }
        }
}
var邮政编码=
[
{邮政编码:“BT486AA1”,地点:“伦敦德里,伦敦德里公园”,日期:[“2014年5月16日”,“2014年6月18日”,“2014年7月19日],
{邮政编码:“BT486AB1”,地点:“伦敦德里,伦敦德里公园”,日期:[“2014年5月17日”,“2014年6月11日],
{邮政编码:“BT486AD1”,地点:“伦敦德里,伦敦德里公园”,日期:[“14/05/2014”,“20/06/2014”],
{邮政编码:“BT486EL1”,地点:“伦敦德里,伦敦德里公园”,日期:[“2014年5月16日”,“2014年6月18日”,“2014年7月19日],
{邮政编码:“BT171JR6”,地点:“伦敦德里,伦敦德里公园”,日期:[“2014年5月17日”,“2014年6月11日],
{邮政编码:“BT171JR7”,地点:“伦敦德里巴里雷根公园”,日期:[“2014年5月14日”,“2014年6月20日],
{邮政编码:“BT171JR1”,地点:“伦敦德里巴利雷根公园”,日期:[“2014年5月16日”、“2014年6月18日”、“2014年7月19日”],
{邮政编码:“BT171JR2”,地点:“伦敦德里巴里雷根公园”,日期:[“2014年5月17日”,“2014年6月11日],
{邮政编码:“BT181JR3”,地点:“伦敦德里奥莫公园”,日期:[“2014年5月14日”,“2014年6月20日],
{邮政编码:“BT181JR4”,地点:“伦敦德里奥莫公园”,日期:[“2014年5月16日”、“2014年6月18日”、“2014年7月19日”],
{邮政编码:“BT191JR6”,地点:“伦敦德里大街”,日期:[“2014年5月17日”,“2014年6月11日],
{邮政编码:“BT191JR7”,地点:“伦敦德里大街”,日期:[“14/05/2014”,“20/06/2014”]
];
函数注册器(){
对于(变量i=0;i
以下是将另一个对象插入阵列的一种方法:

function AddUser() {
  postcodes.push(
    { postcode: "BT191JR7", place: "Main Street, Londonderry", dates: ["14/05/2014", "20/06/2014"] }
  );
}

它实际上比你做的要简单。你想要的东西更像:

postcodes.push({postcode: postCode2, place: "Some place, etc." }); // plus any other properties you may be adding
在上下文中,它看起来是这样的:

function AddUser() {
    var postCode2 = document.getElementById("pc2").value
    var newUser = postcodes[i].postcode;

    for (var i = 0; i < postcodes.length; i++) {
            if (newUser.indexOf(postCode2) === -1) {
                postcodes.push({postcode: postCode2});
                alert("Postcode Registered : " + postCode2 + " Smart Waste Management Scheme will be in contact regarding your step towards smart waste");
            }
        }
}
函数AddUser(){
var postCode2=document.getElementById(“pc2”).value
var newUser=邮政编码[i]。邮政编码;
对于(变量i=0;i
看起来您不想要一个全新的用户。看起来您只是想向邮政编码中的现有对象添加邮政编码。 添加一个全新的对象将不允许您只添加到现有的邮政编码

此代码允许您使用一个对象并将新用户添加到现有邮政编码

function RegisterUser() {

    for (var i = 0; i < postcodes.length; i++) {
        var postCode = document.getElementById("pc2").value;
        var passPostcode = postcodes[i].postcode;

        if (passPostcode === postCode) {
            alert("The postcode you entered is already registered");
            break;
        }
        else {
            AddUser(passPostcode);
        }


   }
}


function AddUser(newUser) {

    var postCode2 = document.getElementById("pc2").value
    this.newUser = newUser;

    for (var i = 0; i < postcodes.length; i++) {
        if (this.newUser.indexOf(postCode2) === -1) {
            var str_postcode = postcodes[i].postcode;
            var addedNewPostCodeToString = str_postcode + ',' + postCode2;
            //postcodes[i].postcode is not an array. Push will not work. You will need to concatenate the string and will need to add a delimiter 
            postcodes[i].postcode = addedNewPostCodeToString; //delimited with comma. 


            alert("Postcode Registered : " + postCode2 + " Smart Waste Management Scheme will be in contact regarding your step towards smart waste");
        }
    }
}
函数注册器(){
对于(变量i=0;i
postcodes[i]。分配给newUser变量的函数AddUser()下的postcode将不起作用。没有为“i”赋值。我将尝试在AddUser()中创建一个新对象,并将该对象推送到数组中。您只需要将newUser作为参数传递。我在回答中添加了代码很好,谢谢。你能告诉我为什么警报不断出现吗?当警报出现一次时,如何退出循环?添加
中断警报后,他希望将新用户推送到现有的邮政编码。您正在创建一个全新的用户。他需要将字符串与新用户的邮政编码连接起来。不是一个全新的用户。我确实想在邮政编码对象数组中创建一个全新的用户?我已更正。我知道他在找一个新用户。我将把这段代码留作参考。我对此有点困惑,我对javasrcipt比较陌生,所以请耐心听我说。我希望用户输入他们的邮政编码,如果它不在对象数组中,那么我希望他们作为新用户添加到对象数组中,因此与数组中的任何其他对象不同。