如何将数据附加到嵌套对象中?

时间:2018-09-25 13:14:59

标签: javascript object nested

let users = {
    142201801: {
        name: "Pankaj Jaiswal",
        address: "Om sai rcm shopy , 400089",
        accountType: "Saving",
        deposits: 20000,
        withdraws: 15000,
        balance: 5000
    },
    142201802: {
        name: "John Deo",
        address: "Om sai rcm shopy , 400089",
        accountType: "Saving",
        deposits: 20000,
        withdraws: 15000,
        balance: 5000
    }
};
let accountNumber_inital = 142201805;

function accountMaker() {
    let accountNumber = accountNumber_inital + 1;
    let name = document.getElementById("userName").value;
    let address = document.getElementById("userAddress").value;
    let type = document.getElementById("accoutType").value;
    console.log("Account made");
}

我有一个用户对象,我已经通过硬编码添加了2个用户。

我的对象是嵌套对象,第一个键是用户帐号,我将其数据嵌套在其他对象中。  我要从输入的字段中添加其他用户。我接受用户名,地址和帐户类型。

我想将数据附加到我的用户对象之后,紧跟在其他用户之后。我已经尝试过添加,但是它给我.append的错误不是function。

4 个答案:

答案 0 :(得分:4)

您有一个JavaScript对象,没有列表或数组,因此无法推送到该对象。但是,您可以使用其关联值定义一个新键,如下所示:

users[accountNumber] = {
  name,
  address,
  accountType: type,
  deposits: 0,
  withdraws: 0,
  balance: 0
};

如果您要删除一个对象,则可以

delete users[accountNumber]

重要的是要记住,像您这样的JavaScript对象实际上可以充当字典(键/值对),其中数组只是一个列表。如果您想要列表的行为,则可以稍微更改对象定义,如下所示:

let users = [
  {
    accountNumber: '123',
    otherFields: ''
  }
];

users.push({accountNumber: '1234', otherFields: 'test'});

但是,您将失去直接通过帐号访问对象的能力,这取决于最适合您的要求。

答案 1 :(得分:0)

您不能append,因为它是一个对象,但是您可以使用Object.assign https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/assign来添加新创建的对象

或者只是users[accountNumber] = {yourObject}

答案 2 :(得分:0)

使用append,您可以使用将新项(用户)添加到当前对象(用户)的方式,如下所示。

function accountMaker() {
    let accountNumber = accountNumber_inital + 1;
    let name = document.getElementById("userName").value;
    let address = document.getElementById("userAddress").value;
    let type = document.getElementById("accoutType").value;
    console.log("Account made");

    // add to the users dictionary

    users.accountNumber = {
        name: name ,
        address: address ,
        accountType: type ,
        deposits: 0,
        withdraws: 0,
        balance: 0
    }
}

答案 3 :(得分:0)

您可以按照以下方式操作:

servicename