Cada item dessa matriz é algum número.
var items = Array(523,3452,334,31, ...5346);
Como substituo um número por array por um novo?
Por exemplo, queremos substituir 3452 por 1010, como faríamos isso?
javascript
arrays
James
fonte
fonte
replace
método para Arrays?Respostas:
Também é recomendável que você não use o método construtor para inicializar suas matrizes. Em vez disso, use a sintaxe literal:
Você também pode usar o
~
operador se estiver no JavaScript conciso e quiser diminuir a-1
comparação:Às vezes, até gosto de escrever uma
contains
função para abstrair essa verificação e facilitar a compreensão do que está acontecendo. O mais impressionante é que isso funciona tanto em matrizes quanto em strings:Começando com o ES6 / ES2015 para seqüências de caracteres e proposto para o ES2016 para matrizes, é possível determinar com mais facilidade se uma fonte contém outro valor:
fonte
contains
:var contains = (a, b) => !!~a.indexOf(b)
: PArray.prototype.includes
.in
para ver se um objeto tem uma chave (por exemplo,'property' in obj
) ou também pode fazer um loop sobre os valores de um objeto comObject.values(obj).forEach(value => {})
.O
Array.indexOf()
método substituirá a primeira instância. Para obter todas as instâncias, useArray.map()
:Claro, isso cria uma nova matriz. Se você quiser fazer isso no lugar, use
Array.forEach()
:fonte
Array.indexOf()
foi introduzido ao mesmo tempo quemap()
eforEach()
. Se você está suportando o IE8 ou anterior e não está usando um calço para adicionar suporte, é melhor ir com a resposta de mellamokb .Minha solução sugerida seria:
A operação de emenda removerá 1 item, começando na posição 1 na matriz (ou seja
3452
), e o substituirá pelo novo item1010
.fonte
1
item será removido quando, na verdade, o primeiro parâmetro significa que a operação ocorre no índice1
. developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/…Use indexOf para encontrar um elemento.
fonte
Facilmente realizado com um
for
loop.fonte
Você pode editar qualquer número da lista usando índices
por exemplo :
fonte
Se você estiver usando um objeto complexo (ou mesmo simples) e puder usar o es6,
Array.prototype.findIndex
é bom. Para a matriz do OP, eles poderiam fazer,Para objetos mais complexos, isso realmente brilha. Por exemplo,
fonte
A substituição pode ser feita em uma linha:
Ou crie uma função para reutilizar:
fonte
ES6 maneira:
Queremos substituir
3452
por1010
, solução:Certamente, a questão é há muitos anos e, por enquanto, eu apenas prefiro usar uma solução imutável , definitivamente, é incrível para
ReactJS
.Para uso frequente, ofereço a função abaixo:
fonte
Primeiro método
Melhor maneira em apenas uma linha para substituir ou atualizar o item da matriz
Por exemplo:
Segundo método
Uma outra maneira simples de fazer a mesma operação é:
fonte
A maneira mais fácil é usar algumas bibliotecas como underscorejs e map map.
fonte
replace
agora ..._.replace([1, 2, 3], 2, 3);
A maneira imutável de substituir o elemento na lista usando operadores e
.slice
método de propagação ES6 .Verifique se funciona
fonte
Se você souber o valor, use,
Se você quiser saber se o valor está presente ou não, use,
Se você conhece o local (posição), use diretamente,
Se você deseja substituir alguns elementos e sabe apenas que a posição inicial significa apenas,
para saber mais sobre .splice
fonte
a partir daqui, você pode excluir um valor específico da matriz e, com base no mesmo índice, pode inserir valor na matriz.
fonte
Bem, se alguém está interessado em como substituir um objeto do seu índice em uma matriz, aqui está uma solução.
Encontre o índice do objeto pelo seu ID:
Substitua o objeto usando o método Object.assign ():
fonte
A resposta de @ gilly3 é ótima.
Como estender isso para a matriz de objetos
Prefiro a seguinte maneira de atualizar o novo registro atualizado em minha matriz de registros quando obtenho dados do servidor. Mantém a ordem intacta e bastante direta em um forro.
users = users.map(u => u.id !== editedUser.id ? u : editedUser);
fonte
Primeiro, reescreva sua matriz assim:
Em seguida, acesse o elemento na matriz através do seu número de índice. A fórmula para determinar o número do índice é:
n-1
Para substituir o primeiro item
(n=1)
da matriz, escreva:No seu exemplo, o número
3452
está na segunda posição(n=2)
. Portanto, a fórmula para determinar o número do índice é2-1 = 1
. Então escreva o seguinte código para substituir3452
com1010
:fonte
Aqui está a resposta básica transformada em uma função reutilizável:
fonte
Eu resolvi esse problema usando loops e iterando pela matriz original e adicionando as posições dos vincos correspondentes a outra matriz e, em seguida, percorrendo essa matriz e alterando-a na matriz original e retornando-a, usei a função de seta, mas uma função regular funcionaria também.
fonte
fonte
A maneira mais fácil é essa.
fonte
replaceWhat = 523, replaceWith = 999999
não produz resultados corretosAqui está um forro. Ele assume que o item estará na matriz.
fonte
Se você deseja um simples sintaxe para açúcar oneliner, basta:
Gostar:
Se você não tiver um ID, poderá especificar o elemento como:
fonte