JavaScript में ऐरे एलिमेंट बदलने में त्रुटि
आइए एक त्रुटि पर विचार करें जो ऐरे एलिमेंट को गलत तरीके से बदलने पर उत्पन्न होती है। मान लीजिए कि हमारे पास इस प्रकार का एक ऐरे दिया गया है:
let arr = [1, 2, 3, 4, 5];
मान लीजिए कि हमारे पास एक फ़ंक्शन भी है, जो एक पैरामीटर के रूप में एक संख्या लेता है और उस संख्या का वर्ग लौटाता है:
function func(num) {
return num ** 2;
}
आइए for-of लूप की सहायता से
हमारे ऐरे को पुनरावृत्त करें और इसके प्रत्येक
एलिमेंट पर हमारे फ़ंक्शन को लागू करें:
for (let elem of arr) {
elem = func(elem);
}
इस स्थान पर, शुरुआत करने वाले अक्सर
त्रुटि करते हैं। बात यह है कि वेरिएबल
elem को बदलना, ऐरे में एलिमेंट
को बदलने का कारण नहीं बनता है। आइए इसे सत्यापित करें:
console.log(arr); // ऐरे नहीं बदला
ऐरे इसलिए नहीं बदलता क्योंकि
वेरिएबल elem में
एलिमेंट की एक प्रति संग्रहीत होती है, न कि उसका संदर्भ।
elem को बदलना प्रति को प्रभावित करता है,
लेकिन स्वयं ऐरे को नहीं।
समस्या के समाधान के लिए ठीक ऐरे के एलिमेंट्स को बदलना आवश्यक है:
for (let i = 0; i < arr.length; i++) {
arr[i] = func(arr[i]);
}
console.log(arr); // अब ऐरे बदल गया है