Teerapat
Teerapat

Reputation: 122

array of object manipulation in javascript

I have an empty array inside the object like this,

const account = {
name: "David Reallycool",
expenses: []

}

and I need to create a function to add expense into an empty array, the result I need is,

const account = {
name: "David Reallycool",
expenses: [
    {
        descrition: "Rent",
        amount: 1000
    },
    {
        description: "Coffee",
        amount: 2.50
    }
]

How can I manipulate it?

Upvotes: 0

Views: 66

Answers (4)

Chayan
Chayan

Reputation: 614

const account = {
    name: "David Reallycool",
    expenses: []
}

function addExpense(description, amount){
    account.expenses.push({"description": description, "amount":amount});
}


addExpense("Test", 500);

console.log(account);

Upvotes: 0

HolgerJeromin
HolgerJeromin

Reputation: 2462

As an object (account) is transferred not as a copy you can manipulate it without problems inside your function.

function addExpenses(inputAccount){
    inputAccount.expenses = [
        {
            descrition: "Rent",
            amount: 1000
        },
        {
            description: "Coffee",
            amount: 2.50
        }
    ]
}
// will be called with
addExpenses(account);
// here account will have expenses content

Upvotes: 0

Ankit Agarwal
Ankit Agarwal

Reputation: 30739

You need to know two things for that:

  1. Changing value in array reflects the change in the original array if you are passing the array as a function parameter as it is passed by reference.
  2. You need to use push() function of Array prototype to add that object in your expenses array.

function addExpense(expensesArray, expense){
  expensesArray.push(expense);
}

const account = {
  name: "David Reallycool",
  expenses: []
};
var expense = {
  descrition: "Rent",
  amount: 1000
}
addExpense(account.expenses, expense);
var expense = {
  descrition: "Coffee",
  amount: 2.5
}
addExpense(account.expenses, expense);

console.log(account);

Upvotes: 0

Mettin Parzinski
Mettin Parzinski

Reputation: 898

const addExpense = (expense) => {
  account.expenses.push(expense)
}
// use like this
addExpense({ description: 'Rent', amount: 1000 })
addExpense({ description: 'Coffee', amount: 2.5 })

Upvotes: 1

Related Questions