Jump to content
vikcch

javascript array range

Recommended Posts

vikcch

Boas,

É possível alterar logo o conteúdo de n elementos de uma array em javascript?

ex:

var myArray = ["a", "b", "c", "d", "e"];
myArray.range(1 to 3) = "z";  // substitui "b", "c" e "d" por "z"

Se for possível, é mais rápido do que fazer um ciclo e alterar um por um?

Obrigado desde já!!

Share this post


Link to post
Share on other sites
bioshock

Creio que não existe tal funcionalidade e se houvesse também teria de base um ciclo apesar de só chamares a função.

for(var i = 1; i <= 3; i++)
  myArray[i] = 'z';

Edited by bioshock

Share this post


Link to post
Share on other sites
vikcch

Obrigado por postares!!

tenho uma imagem e quero fazer um "crop" na imagem mas não é quadrado/rectangular, é na diagonal, e se tiver de correr pixel por pixel poderá ficar lento.

o crop do canvas tambem é feito "internamente" através de ciclos? é que parece ser instantâneo mesmo com imagens grandes...

context.drawImage(imageObj, sourceX, sourceY, sourceWidth, sourceHeight, destX, destY, destWidth, destHeight);

por exemplo, se fizer como está em baixo não seria mais rápido que fazer um ciclo?

myArray[1] = myArray[2] = myArray[3] = "z";

Share this post


Link to post
Share on other sites
bioshock

Tens de pensar na escalabilidade do teu projecto a longo prazo. Alterar o valor do índice de dois ou três items da lista de array não é considerável, mas e se no futuro precisares de alterar 100? 1000?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.