Սրանք այն գործառույթներն են, որոնք օգտագործվում են զանգվածի կամ տողի մի մասը ստանալու համար՝ փոքր տարբերություններով, և դա այն է, ինչ մենք պատրաստվում ենք քննարկել այս գրառման մեջ:

Ենթատող

substring() ֆունկցիան ֆունկցիա է, որը կարող է կանչվել միայն տողային տվյալների տեսակի վրա: Ենթադրվում է, որ այս ֆունկցիան ստանում է տողի մի մասը սկզբնական ինդեքսից մինչև վերջ:

substring()-ը վերցնում է երկու պարամետր՝ սկզբի ինդեքս և ավարտի ինդեքս: Բայց եթե միայն մեկ պարամետր տանք, ապա այն կստեղծի ենթատող՝ պահելով այդ պարամետրը որպես սկզբնական ինդեքս և շարունակելով մինչև տողի վերջը, ինչպես օրինակ.

let str = "hardik";
let newStr = str.substring(2);
console.log(newStr); // "rdik"

Հիմնական բանը, որ պետք է այստեղ նկատել, այն է, որ այն որևէ փոփոխություն չի կատարում բնօրինակ տողի մեջ: Այն պարզապես վերադարձնում է նոր տող: Բացի այդ, եթե մենք տրամադրենք երկու պարամետր, ինչպիսիք են

let str = "hardik";
let newStr = str.substring(2, 4);
console.log(newStr); // "rd"

Այստեղ այն վերադարձնում է ենթատող՝ սկսած մեր սկզբի ինդեքսից՝ 2 մինչև մեր վերջի ինդեքսը՝ 4, բայց այն բացառում է վերջի ինդեքսի նիշը:

Այս ֆունկցիան չի աջակցում բացասական ինդեքսներին որպես արգումենտներ, եթե ընդունվի, ֆունկցիան չի կատարվում:

Կտոր

slice()-ը նման է ենթատողի, բայց slice()-ը կարող է օգտագործվել և՛ տողի, և՛ զանգվածի վրա: Սա նույնպես վերցնում է երկու պարամետր, ինչպիսիք են substring()-ը և վարվում է նույն ձևով: Օրինակ, եթե մենք պարզապես տրամադրենք մեկ պարամետր, այն մեզ կտա ենթազանգված կամ ենթատող մինչև զանգվածի կամ տողի վերջը, որի վրա կիրառվում է:

let str = "hardik"
let arr = [1, 2, 3, 4, 5, 6, 7];

console.log(str.slice(4)); // "ik"
console.log(arr.slice(2, 5)); //  [3, 4, 5]

Ի տարբերություն substring()-ի, slice()-ն ընդունում է նաև բացասական պարամետրեր:

let arr = [1, 2, 3, 4, 5, 6, 7];

console.log(arr.slice(2, -1)); //  [3, 4, 5, 6]

Այսպիսով, այն, ինչ տեղի է ունենում վերը նշված օրինակում, այն է, որ շերտը հաշվում է բացասական ինդեքսները զանգվածի վերջից և, հետևաբար, -1-ը վերջին ինդեքսն է, ուստի մենք կտրատում ենք զանգվածը մինչև վերջին ինդեքսը՝ բացառելով հենց վերջին ինդեքսը: Սա աշխատում է ինչպես զանգվածի, այնպես էլ տողի համար:

slice()-ը ոչինչ չի փոխում սկզբնական զանգվածում կամ տողում, որի վրա կիրառվում է, այն պարզապես վերադարձնում է նոր զանգված կամ տող:

Splice

splice()-ը ֆունկցիա է, որը կարելի է կանչել միայն զանգվածների վրա: Այս ֆունկցիան փոփոխում է զանգվածի բովանդակությունը՝ հեռացնելով կամ փոխարինելով գոյություն ունեցող տարրերը որոշակի ինդեքսից։ Սա կարող է հիանալի լինել զանգվածի տարրերը մեծ մասշտաբով փոխարինելու համար:

Այս ֆունկցիան վերցնում է երեք հիմնական պարամետր splice(start, deleteCount?, item?): start պարամետրն այն է, որտեղ կսկսվի ջնջումը, deleteCountstart-ից քանի տարր ենք ուզում ջնջել, իսկ item-ն այն է, ինչ կավելացվի զանգվածին start-ից հետո: Մենք կարող ենք ավելացնել այնքան տարրեր, որքան ցանկանում ենք, պարզապես լրացուցիչ արգումենտներ փոխանցել ֆունկցիային:

Օրինակ:

let arr = [1, 2, 3, 4, 5, 6, 7];
let brr = arr.splice(1, 3, 7,7,7);

console.log(arr); // [1, 7, 7, 7, 5, 6, 7]
console.log(brr); // [2, 3, 4]

Ինչպես երևում է վերևի օրինակից, այն փոխում է սկզբնական զանգվածը և վերադարձնում մեզ միացված զանգվածը ([2, 3, 4]):

Ինչ կլինի, եթե մենք փոխանցենք միայն մեկ պարամետր.

let arr = [0,1,2,3,4,5];
let brr = arr.splice(2);

console.log(arr); // [0, 1]
console.log(brr); // [2, 3, 4, 5]

Այն այս դեպքում վարվում է նույն կերպ, ինչպես substring և slice և մեզ վերադարձնում է զանգված start ինդեքսից մինչև զանգվածի վերջը, բայց այն նաև խմբագրում է բնօրինակը:

Հիմա, ինչ տեղի կունենա, եթե մենք որպես պարամետրեր ավելացնենք ավելի շատ տարրեր, քան մեր տրամադրած deletecount-ը.

let arr = [1, 2, 3, 4, 5, 6, 7];
let brr = r.splice(1, 3, 7,7,7,7,7);

console.log(arr); // [1, 7, 7, 7, 7, 7, 5, 6, 7]
console.log(brr); // [2, 3, 4]

Այն մեզ վերադարձնում է տարրերի զանգվածը, որը մենք ջնջել ենք, և ավելացնում է բոլոր items-ը սկզբնական զանգվածում, անկախ նրանից, թե քանի տարր մենք տրամադրում ենք, այն կավելացնի սկզբնական զանգվածին: Այստեղ մենք հանեցինք 3 տարր և դրա փոխարեն ավելացրինք 5-ը։

Եզրակացություն

Այս գործառույթները բավականին օգտակար են մեր ամենօրյա կոդավորման մեջ և երբեմն կարող են մի փոքր շփոթեցնող լինել: Հուսով եմ, որ այս հոդվածը օգնեց ձեզ մաքրել ձեր որոշ կասկածներ substring(), slice() և splice()-ի վերաբերյալ: Կապվեք ինձ հետ, եթե դեռ կասկածներ ունեք այս հարցում:

Դուք կարող եք նաև կապվել ինձ հետ LinkedIn-ում:

Շնորհակալություն կարդալու համար։