Изменить первый элемент массива.(forEach)

С помощью метода forEach нужно создать новый массив в котором к каждому имени будет добавлен знак "!"

var users = [
 ["john","red",5,["ball", "book", "pen"]],
 ["becky","blue",10,["tape", "backpack", "pen"]],
 ["susy","red",55,["ball", "eraser", "pen"]],
 ["tyson","green",1,["book", "pen"]],
];

let users1 = users.forEach( function(element,i ,arr) {
    console.log(element + "!" )
});

Ответы (2 шт):

Автор решения: entithat

newArr = [];
[
  ["john", "red", 5, ["ball", "book", "pen"]],
  ["becky", "blue", 10, ["tape", "backpack", "pen"]],
  ["susy", "red", 55, ["ball", "eraser", "pen"]],
  ["tyson", "green", 1, ["book", "pen"]],
].forEach(e => newArr.push((e[0] = '!' + e[0], e)));

console.log(newArr);

→ Ссылка
Автор решения: Vadim

С фор-ич лишняя переменная, лучше так

let users = [
    ['john', 'red', 5, ['ball', 'book', 'pen']],
    ['becky', 'blue', 10, ['tape', 'backpack', 'pen']],
    ['susy', 'red', 55, ['ball', 'eraser', 'pen']],
    ['tyson', 'green', 1, ['book', 'pen']],
];

// users = users.map((a)=>[`!${a.shift()}`, ...a]); // ne
users = users.map((a)=>((a[0] = `!${a[0]}`), a)); // da

// console.table(users);
console.log(users);

console.table в сниппете не работает :(

→ Ссылка