5

How can I update an array (key,value) object?

arrTotals[
{DistroTotal: "0.00"},
{coupons: 12},
{invoiceAmount: "14.96"}
]

I want to update the 'DistroTotal' to a value.

I have tried

    for (var key in arrTotals) {
        if (arrTotals[key] == 'DistroTotal') {
            arrTotals.splice(key, 2.00);
        }
    }

Thanks ..

3
  • Array of js objects... Commented Feb 12, 2013 at 0:21
  • Arrays in JavaScript have numerical indexes (keys). As soon as you shove a non-numerical "index" into it, it's no longer an array. Commented Feb 12, 2013 at 0:21
  • @NullUserException my mistake, I thought it was saying var arrTotals = [ {DistroTotal: "0.00"}, {coupons: 12}, {invoiceAmount: "14.96"} ] Commented Feb 12, 2013 at 0:29

2 Answers 2

11

Since it sounds like you are trying to use a key/value dictionary. Consider switching to using an object instead of an array here.

arrTotals = { 
    DistroTotal: 0.00,
    coupons: 12,
    invoiceAmount: "14.96"
};

arrTotals["DistroTotal"] = 2.00;
Sign up to request clarification or add additional context in comments.

Comments

6

You're missing a level of nesting:

for (var key in arrTotals[0]) {

If you only need to work with that specific one, then just do:

arrTotals[0].DistroTotal = '2.00';

If you don't know where the object with the DistroTotal key is, or there are many of them, your loop is a bit different:

for (var x = 0; x < arrTotals.length; x++) {
    if (arrTotals[x].hasOwnProperty('DistroTotal') {
        arrTotals[x].DistroTotal = '2.00';
    }
}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.