Perfeito, parem de usar map
como se fosse um loop :-)
Só um detalhe, se quer substituir apenas um único item do array, não precisa de splice
, basta setar o índice do array diretamente:
const users = ['Jean', 'Joãozinho', 'Deschamps', 'Junior'];
// Substituir o item na posição 2 por "Diego"
users[2] = 'Diego';
console.log(users); // [ 'Jean', 'Joãozinho', 'Diego', 'Junior' ]
Eu acho splice
mais útil quando se quer fazer mais do que isso (como os outros casos que mencionou). Aliás, com splice
você pode remover e adicionar ao mesmo tempo:
const users = ['fulano', 'ciclano', 'beltrano', 'trajano', 'zé', 'jão'];
users.splice(1, // A partir da posição 1 (ou seja, "ciclano")
3, // apagar 3 elementos (ou seja, "ciclano", "beltrano" e "trajano")
'tonho', 'bento'); // e a partir da mesma posição (1, onde estava "ciclano"), adicionar 'tonho' e 'bento'
console.log(users); // [ 'fulano', 'tonho', 'bento', 'zé', 'jão' ]
E para complementar, tem também o método every
, que serve para verificar se todos os elementos satisfazem alguma condição:
const users = ['joão', 'davi', 'josé'];
// verifica se todos possuem 4 caracteres
const todos4Caracteres = users.every(user => user.length === 4);
console.log(todos4Caracteres); // true
E o slice
, que cria uma cópia de parte do array:
const users = ['joão', 'davi', 'josé', 'fulano', 'ciclano', 'beltrano', 'trajano'];
// sub-array, contendo os elementos nas posições 2, 3, e 4 (o índice final não é incluso)
const pedaco = users.slice(2, 5);
console.log(pedaco); // [ 'josé', 'fulano', 'ciclano' ]
// sem o índice final, pega até o final do array
// índices negativos começam a contar do final (-1 é a última posição, -2 é a penúltima, etc)
const tresUltimos = users.slice(-3);
console.log(tresUltimos); // [ 'ciclano', 'beltrano', 'trajano' ]
E por fim, o join
, que junta os elementos do array, formando uma única string:
const users = ['joão', 'davi', 'josé', 'fulano', 'ciclano', 'beltrano', 'trajano'];
// todos os users, separados por vírgula + espaço
console.log(users.join(', ')); // joão, davi, josé, fulano, ciclano, beltrano, trajano