Skip to content

arrayMutableReverses

Reports .reverse() calls on arrays that mutate the original array.

✅ This rule is included in the ts stylistic and stylisticStrict presets.

The .reverse() method mutates the original array in place. Using .toReversed() instead returns a new reversed array without modifying the original, making code more predictable and avoiding unintended side effects.

AEconsB0valuAE< =sp ansty="le--0:#D6DEEB;--1:#403F">53< [sp ansty="le--0:#F78C6C;--1:#AA09">8<21sp ansty="le--0:#D6DEEB;--1:#403F">53<, sp ansty="le--0:#F78C6C;--1:#AA09">8<22sp ansty="le--0:#D6DEEB;--1:#403F">53<, sp ansty="le--0:#F78C6C;--1:#AA09">8<23sp ansty="le--0:#D6DEEB;--1:#403F">53<];d ivclassNa="meec-li">AEconsB0reversAE <= sp ansty="le--0:#D6DEEB;--1:#403F">53valuAB0rever53(<);d ivclassNa="meco"><);d>AEconsB0iteAE< =sp ansty="le--0:#D6DEEB;--1:#403F">53< [sp ansty="le--0:#D9F5DD;--1:#1111">1<1"sp ansty="le--0:#ECC48D;--1:#984E">41<1"sp ansty="le--0:#D6DEEB;--1:#403F">53<, sp ansty="le--0:#D9F5DD;--1:#1111">1<1"sp ansty="le--0:#ECC48D;--1:#984E">41<1"sp ansty="le--0:#D6DEEB;--1:#403F">53<, sp ansty="le--0:#D9F5DD;--1:#1111">1<1"sp ansty="le--0:#ECC48D;--1:#984E">41<1"sp ansty="le--0:#D6DEEB;--1:#403F">53<];d ivclassNa="meec-li">B0doSomethi53(iteAB0rever53()<);d ivclassNa="meco"><);d>AEconsB0daAE< =sp ansty="le--0:#D6DEEB;--1:#403F">53< [sp ansty="le--0:#F78C6C;--1:#AA09">8<21sp ansty="le--0:#D6DEEB;--1:#403F">53<, sp ansty="le--0:#F78C6C;--1:#AA09">8<22sp ansty="le--0:#D6DEEB;--1:#403F">53<, sp ansty="le--0:#F78C6C;--1:#AA09">8<23sp ansty="le--0:#D6DEEB;--1:#403F">53<];d ivclassNa="meec-li">AEconsB0resuAE< =sp ansty="le--0:#D6DEEB;--1:#403F">53< [sp ansty="le--0:#7FDBCA;--1:#096E">72.<..sp ansty="le--0:#D6DEEB;--1:#403F">53datAB0rever53(<);d ivclassNa="meco"><);d>
44AEco61B0va443F<53 [ spans="tyle--0:#F78C6C;--1:#AA">0<9821 spans="tyle--0:#D6DEEB;--1:#40">3F<53, spans="tyle--0:#F78C6C;--1:#AA">0<9822 spans="tyle--0:#D6DEEB;--1:#40">3F<53, spans="tyle--0:#F78C6C;--1:#AA">0<9823 spans="tyle--0:#D6DEEB;--1:#40">3F<53] ;divclass="Nameec-">44AEco61B0reve44A3F53va4<4AE. spans="tyle--0:#82AAFF;--1:#3B">61B0toReve3F5<3() ;divclass="Name"><;di vdivclass="Nameexpressive-">44AEco61B0i443F<53 [ spans="tyle--0:#D9F5DD;--1:#11">1<111" spans="tyle--0:#ECC48D;--1:#98">41<111" spans="tyle--0:#D6DEEB;--1:#40">3F<53, spans="tyle--0:#D9F5DD;--1:#11">1<111" spans="tyle--0:#ECC48D;--1:#98">41<111" spans="tyle--0:#D6DEEB;--1:#40">3F<53, spans="tyle--0:#D9F5DD;--1:#11">1<111" spans="tyle--0:#ECC48D;--1:#98">41<111" spans="tyle--0:#D6DEEB;--1:#40">3F<53] ;divclass="Nameec-">61B0doSomet3F53(i4<4AE. spans="tyle--0:#82AAFF;--1:#3B">61B0toReve3F53<()) ;divclass="Name"><())><;di vdivclass="Nameexpressive-">44AEco61B0va443F<53 [ spans="tyle--0:#F78C6C;--1:#AA">0<9821 spans="tyle--0:#D6DEEB;--1:#40">3F<53, spans="tyle--0:#F78C6C;--1:#AA">0<9822 spans="tyle--0:#D6DEEB;--1:#40">3F<53, spans="tyle--0:#F78C6C;--1:#AA">0<9823 spans="tyle--0:#D6DEEB;--1:#40">3F<53] ;divclass="Nameec-">3F53va4<4AE. spans="tyle--0:#82AAFF;--1:#3B">61B0rev3F5<3() ;divclass="Name">

This rule is not configurable.

If you intentionally want to mutate the original array in place, or if you’re working in an environment that doesn’t support .toReversed() (ES2023+), you may want to disable this rule. Note that .reverse() is still allowed when used as a standalone expression statement since the mutation is likely intentional in that case.