Sut i gopïo neu ehangu arae?

Diweddariad diwethaf: 11/10/2023

Mewn datblygu meddalwedd, araeau neu araeau yn cynrychioli rhan hanfodol o raglennu. Maent yn strwythurau data sy'n ein galluogi i storio setiau o wybodaeth o dan yr un enw, gan hwyluso trin a mynediad at ddata. Beth bynnag fo maint a math y data, mae yna adegau bob amser pan fydd angen rhaglenwyr copïo neu ehangu arae. Yn yr erthygl ganlynol, byddwn yn canolbwyntio ar esbonio'n fanwl sut i gyflawni'r gweithrediadau hyn mewn gwahanol ieithoedd rhaglennu.

Deall yr Angen i Gopïo neu Ehangu Arae

Mewn rhaglennu, rydym yn aml yn cael ein hunain mewn sefyllfaoedd lle mae angen copïo neu ehangu arae. Er enghraifft, efallai y bydd angen i ni gadw copi o arae cyflawni gweithrediadau heb newid yr arae wreiddiol. Neu efallai, mae ein casgliad wedi dod yn llawn ac mae angen i ni gynyddu ei faint i ychwanegu mwy o elfennau. Ar gyfer yr achosion hyn, mae gweithredu copïo neu ehangu arae yn hanfodol. Mae'r swyddogaeth hon nid yn unig yn gwasanaethu i gopïo neu gynyddu maint yr arae, ond gall hefyd ein helpu i leihau'r defnydd o gof trwy storio'r data angenrheidiol yn unig.

Ar ben hynny, mae'n werth chweil sôn am hynny Mae araeau yn Java yn wrthrychau na ellir eu cyfnewid, hynny yw, unwaith y bydd arae wedi'i greu, ni all ei maint newid. Er mwyn "ehangu" arae yn Java, byddai'n rhaid i ni greu arae newydd fwy ac yna copïo elfennau'r arae wreiddiol i'r un newydd. Gall hyn fod ychydig yn ddiflas, ond mae yna ddulliau wedi'u hymgorffori yn llyfrgell safonol Java fel System.arraycopy() y Arrays.copyOf() a all hwyluso Y broses hon. Ar gyfer ieithoedd sy'n trin strwythurau data deinamig, megis JavaScript neu Python, mae'r broses yn llawer symlach ac mae yna ddulliau fel push() y append() sy'n caniatáu i elfennau gael eu hychwanegu at arae sy'n bodoli eisoes heb orfod creu un newydd.

Cynnwys unigryw - Cliciwch Yma  Y rhaglenni rhad ac am ddim gorau i reoli'ch cyfrifiadur o bell

Ymchwilio i Ddulliau o Gopïo Araeau mewn Javascript

Y dull mwyaf cyffredin o gopïo neu ddyblygu arae yn Javascript yw defnyddio y dull sleisen().. Mae'r dull hwn yn dychwelyd copi bas o'r arae o is-arae a grëwyd rhwng y mynegeion cychwyn a diwedd. Nid yw'n addasu'r arae wreiddiol ac mae'n ynysu'r arae a gopïwyd yn llwyr o'r arae wreiddiol. Mae'n bwysig nodi, wrth gopïo gwrthrychau o fewn arae, bod cyfeiriadau yn cael eu creu at y gwrthrychau gwreiddiol yn hytrach na chreu enghreifftiau newydd. Mae hyn yn golygu, os ydych chi'n addasu'r gwrthrych yn yr arae a gopïwyd, bydd hefyd yn cael ei addasu yn yr arae wreiddiol. Dyma ychydig o god i ddangos:


let arrayOriginal = ['a', 'b', 'c', 'd', 'e'];
let arrayCopia = arrayOriginal.slice();

Os mai'r hyn sydd ei angen arnoch chi ehangu arae, JavaScript yn cynnig i ni sawl ffordd i'w wneud. Un dull yw defnyddio'r gweithredwr lledaenu. Mae'r gweithredwr hwn yn caniatáu ichi ehangu elfennau ailadroddadwy o fewn yr arae i greu arae newydd yn cynnwys elfennau'r arae wreiddiol a'r elfennau ychwanegol. Dull arall yw'r dull concat (), sy'n dychwelyd arae newydd sy'n ganlyniad i uno'r arae wreiddiol ag un neu fwy o araeau neu werthoedd. Yn olaf, gallwch hefyd ddefnyddio'r dull gwthio () sy'n ychwanegu un neu fwy o elfennau at ddiwedd arae ac yn dychwelyd hyd newydd yr arae. Yma mae gennych chi Rhai enghreifftiau:


let array1 = [1, 2, 3];
let array2 = [...array1, 4, 5, 6]; // array2 ahora es [1, 2, 3, 4, 5, 6]


let array3 = [1, 2, 3];
let array4 = array3.concat([4, 5, 6]); // array4 ahora es [1, 2, 3, 4, 5, 6]


let array5 = [1, 2, 3];
array5.push(4, 5, 6); // array5 ahora es [1, 2, 3, 4, 5, 6]

Ehangu Arae: Technegau a Argymhellir ac Opsiynau Eraill

Mae ehangu arae yn dasg gyffredin mewn rhaglennu, yn enwedig o ran storio a thrin symiau mawr o ddata. Fodd bynnag, gall y dasg fod yn heriol os nad yw'r technegau cywir yn hysbys. Yma, byddwn yn trafod rhai technegau a argymhellir ac opsiynau eraill ar gyfer ehangu amrywiaeth. Yn gyntaf oll, gallwch ddefnyddio'r swyddogaeth Array.prototeip.concat(). Mae'r swyddogaeth hon yn cyfuno dwy arae neu fwy Dim ond un matrics. Ar ben hynny, nid yw'n addasu'r matricsau gwreiddiol, sy'n golygu hynny cedwir cywirdeb data. Dyma enghraifft o sut i ddefnyddio Array.prototype.concat():


let array1 = [1, 2, 3];
let array2 = [4, 5, 6];
let newArray = array1.concat(array2);

// newArray ahora es [1, 2, 3, 4, 5, 6]

Opsiwn arall yw defnyddio'r dechneg gweithredwr lledaenu (…) . Mae'r gweithredwr hwn yn caniatáu ichi gymryd elfennau o arae a'u gosod mewn arae newydd. Yn wahanol i Array.prototype.concat(), mae'r gweithredwr lledaeniad yn gweithio'n dda gydag araeau a gwrthrychau. Gellir ei ddefnyddio hefyd i gopïo arae. Dyma enghraifft o sut i ddefnyddio'r gweithredwr taenu:


let array1 = [1, 2, 3];
let newArray = [...array1, 4, 5, 6];

// newArray ahora es [1, 2, 3, 4, 5, 6]

Yn y diwedd, bydd dewis pa ddull i'w ddefnyddio yn dibynnu ar anghenion penodol eich prosiect. Fodd bynnag, mae Array.prototype.concat() a'r gweithredwr taenu yn dechnegau effeithiol ar gyfer ehangu araeau.

Cynnwys unigryw - Cliciwch Yma  Sut i gael gwared ar yrwyr anghydnaws yn Windows 11

Rheoli Arae'n Effeithlon: Goblygiadau ar gyfer Perfformiad Cod

Wrth drin araeau, a o weithredoedd Y mwyaf cyffredin yw copi neu estyniad o'r rhain. Fodd bynnag, mae'n hanfodol gwybod sut i gyflawni'r gweithrediadau hyn yn effeithlon i sicrhau perfformiad cod da. Felly, rydym yn mynd i ddadansoddi dau brif ddull: Array.prototeip.slice() y Array.prototeip.concat().

Pan fydd angen inni gopïo arae, gallwn ddefnyddio'r swyddogaeth tafell (). Mae'r dull hwn yn ein galluogi i greu copi bas o ran o'r arae yn wrthrych arae newydd. I wneud copi cyflawn o'n casgliad, rydym yn syml yn defnyddio sleisen heb unrhyw ddadleuon, fel hyn:

var gwreiddiol = [1, 2, 3, 4, 5]; var copi = original.slice();

Bydd hyn yn rhoi arae 'copi' newydd i ni gyda'r un gwerthoedd â'r arae 'gwreiddiol'. Fodd bynnag, rhaid ystyried nad y dull hwn yw'r mwyaf effeithlon ar gyfer araeau mawr gan y gall arwain at ormod o ddefnydd o'r cof ac arafu cod.

Cynnwys unigryw - Cliciwch Yma  Pa mor hir y dylai ei gymryd i lawrlwytho Windows 10

O ran ehangu araeau, rydym yn awgrymu defnyddio'r swyddogaeth concat(). Defnyddir y dull hwn i uno dwy arae neu fwy ac yn dychwelyd arae newydd. Gadewch i ni ddychmygu bod gennym ddau arae 'array1' ac 'array2' yr ydym am ymuno â nhw. Felly, gallwn ddefnyddio concat fel a ganlyn:

var array1 = [1, 2, 3]; var array2 = [4, 5, 6]; var estynedig = array1.concat(array2);

Byddai hyn yn dychwelyd arae 'estynedig' gyda'r gwerthoedd [1, 2, 3, 4, 5, 6]. Byddwch yn siwr i gofio hynny, tra concat yn wych ar gyfer uno araeau bach, gall ddefnyddio llawer o gof wrth ddelio ag araeau mwy.