RMMZ [Javascript] Shifting only select elements of array?

ct_bolt

Creator
Veteran
Joined
May 3, 2012
Messages
954
Reaction score
517
First Language
Javascript
Primarily Uses
RMMZ
Another one for ya guys... kind of has me stumped...

Shifting only select elements of array while keeping the rest of the array as is though.

Example:
Code:
const a = ["A", 4, "B", "C", "D", 1, 2, 3];
How would I shift only the numbers while keeping the rest of the array as is.

So the first shift should end up like this:
Code:
["A", 3, "B", "C", "D", 4, 1, 2]
Second shift like this:
Code:
["A", 2, "B", "C", "D", 3, 4, 1]
Thanks again for any/all help advice. :cutesmile:
 

Nolonar

Veteran
Veteran
Joined
Feb 18, 2018
Messages
160
Reaction score
232
First Language
French, German
Primarily Uses
RMMZ
You can do this:
Code:
a = a.map(element => typeof element === "number" ? shift(element) : element);
This will give you a new array where only numbers have been shifted.
As for the shift method, you probably want this:
Code:
const shift = n => n - 1 || 4;
Obviously, n has to be greater than 0, otherwise you'll get negative numbers.

For more control you can also define shift this way:
Code:
const shift = (n, max) => n - 1 || max;
 

 Masked 

Assistant
Veteran
Joined
Oct 28, 2015
Messages
90
Reaction score
258
First Language
Portuguese
Primarily Uses
RMMZ
I think you'll need to give a bit more detail on the logic of what you're trying to achieve with this one, from what you've said the only thing it can think of is swapping the elements on the array, like this:

JavaScript:
const a = [1, "a", 3, "b", "c", 4];

let aux = a[2];
a[2] = a[5];
a[5] = aux;
Aside from that, is there any particular reason to have strings and numbers mixed on the same array? It's usually not very good to have elements that behave differently on a collection. If you can split this into two arrays, one for strings and another for integers, then it's a lot easier to do (just pop and unshift).
 

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Posts

Latest Profile Posts

Officially not a mod anymore. Thanks for the many years!
Thinking if i should post on the classifieds section...
Made another plugin showcase video! :kaojoy:
(Plugins and details inside the description of the YouTube video.) :LZScheeze:
Ami
Castle is my Biggest Fear :kaodes:. I just Managed make Part by Part (like the Entrance only),not the Entire Castle like in the RM Sample...
This video really speaks to me...

Forum statistics

Threads
104,373
Messages
1,005,905
Members
135,894
Latest member
EnriX
Top