Home > Mobile >  Push an item to array of array in javascript
Push an item to array of array in javascript

Time:06-23

Hi I am having an array like below and trying to push the item on map, but i am not able to push, Please tell what wrong i am doing here.

firstClassPrices: [
  [
    "Kan ej ombokas",
    "431",
    "SEK",
    "Företagspris"
  ],
  [
    "Kan ombokas",
    "525",
    "SEK",
    "Företagspris"
  ]
]

trying to push '1' like below:

 let ticketi = firstClassPrices.map((price) => {
      price.push("1");
    });

i need o/p as

firstClassPrices: [
      [
        "Kan ej ombokas",
        "431",
        "SEK",
        "Företagspris",
         "1"
      ],
      [
        "Kan ombokas",
        "525",
        "SEK",
        "Företagspris",
         "1"
      ]
    ]

CodePudding user response:

Your approach mutates the old array and maps undefined.


Instead, you could map the old and new content of the array.

This approach does not mutate the old data.

let ticketi = firstClassPrices.map(price => [...price, '1']); 

CodePudding user response:

You have to return the price

const firstClassPrices = [
  [
    "Kan ej ombokas",
    "431",
    "SEK",
    "Företagspris"
  ],
  [
    "Kan ombokas",
    "525",
    "SEK",
    "Företagspris"
  ]
];

 let ticketi = firstClassPrices.map((price) => {
      price.push("1");
      return price;
    });

console.log(ticketi);

CodePudding user response:

You can use Array.prototype.map() combined with Array.prototype.concat()

Code:

const firstClassPrices = [["Kan ej ombokas","431","SEK","Företagspris"],["Kan ombokas","525","SEK","Företagspris"]]

const ticketi = firstClassPrices.map(p => p.concat('1'))

console.log(ticketi)

CodePudding user response:

Since you want to mutate the original arrays, you can use the function Array.prototype.forEach.

The problem you're facing is regarding the missing return value inside of the map's handler, so basically, the handler is returning undefined

const array = [  [    "Kan ej ombokas",    "431",    "SEK",    "Företagspris"  ],  [    "Kan ombokas",    "525",    "SEK",    "Företagspris"  ]],
      handler = (a) => a.push("1");

array.forEach(handler);

console.log(array);
.as-console-wrapper { max-height: 100% !important; top: 0; }

  • Related