// Data
const account1 = {
owner: 'Jason Mike',
movements: [200, 450, -400, 3000, -650, -130, 70, 1300],
interestRate: 1.2, // %
pin: 1111,
};
const account2 = {
owner: 'Jessica Davis',
movements: [5000, 3400, -150, -790, -3210, -1000, 8500, -30],
interestRate: 1.5,
pin: 2222,
};
const account3 = {
owner: 'Steven Thomas Williams',
movements: [200, -200, 340, -300, -20, 50, 400, -460],
interestRate: 0.7,
pin: 3333,
};
const account4 = {
owner: 'Sarah Smith',
movements: [430, 1000, 700, 50, 90],
interestRate: 1,
pin: 4444,
};
const accounts = [account1, account2, account3, account4];
//creating a owners array
const owners = [];
owners.push(accounts.map(acc => acc.owner).flat());
owners.push('Chris John');
owners.flat();
console.log(owners.sort());
output
why is it creating a nested array and not appending to the existing array
ps=> sorry this is my first question. Apologies if any mistakes
Why make it complex first creating an empty array and then push the elements and then flat.
The map() method creates a new array populated with the results of calling a provided function on every element in the calling array.
Use map directly and it will return result in a brand new array and then push the element into it.
// Data
const account1 = {
owner: "Jason Mike",
movements: [200, 450, -400, 3000, -650, -130, 70, 1300],
interestRate: 1.2, // %
pin: 1111,
};
const account2 = {
owner: "Jessica Davis",
movements: [5000, 3400, -150, -790, -3210, -1000, 8500, -30],
interestRate: 1.5,
pin: 2222,
};
const account3 = {
owner: "Steven Thomas Williams",
movements: [200, -200, 340, -300, -20, 50, 400, -460],
interestRate: 0.7,
pin: 3333,
};
const account4 = {
owner: "Sarah Smith",
movements: [430, 1000, 700, 50, 90],
interestRate: 1,
pin: 4444,
};
const accounts = [account1, account2, account3, account4];
//creating a owners array
const owners = accounts.map((acc) => acc.owner);
owners.push("Chris John");
console.log(owners);