Spread Operator in Javascript Hindi Tutorial

Spread Operator in Javascript in Hindi

spread operator को javascript ES6 version में introduce किया गया है |

किसी array की values को spread करके multiple arguments में बदलने में spread operator का उपयोग होता है |

spread operator को 3 dots से लिखी जाती है जैसे की …args

उदाहरण:

<!Doctype html>
<html>
 <head>
 </head>
 <body>
  <h2>Spread Operator Example</h2>
  <script type="text/javascript">
    var arr1 = [10,20,30,40];
    console.log(...arr1);
  </script>
 </body>
</html>

output:

spread operator example

उदाहरण में देखिए हमने एक array की value को spread operator के जरिये fetch किया है |

spread operator के जरिये array values को function में कैसे assign करें?

अगर किसी array को किसी function के parameters को assign करनी है तो javascript के ES5 version तक apply method के जरिए किया जाता था जो थोडा लम्बा काम होता था |

उदाहरण:

<!Doctype html>
<html>
 <head>
 </head>
 <body>
   <script type="text/javascript">
   function myFunction(a,b,c)
   {
      let sum = 0;
      sum = a+b+c;
      document.write(`total is: ${sum}`);
   }
   var arr = [10,20,30];
   myFunction.apply(null,arr); //es5 version  
  </script>
 </body>
</html>

उदाहरण में देखिये हमने myFunction(a,b,c) नाम का एक function लिया है और इसमें 3 parameters डाली है | और एक arr नाम की एक array ली है | इस array की values को function के parameters में assign करने के लिए apply method को call किया है |

अब ES6 version आने के बाद से कोई extra method लगाने की जरुरत नहीं होगी | हम spread parameter के जरिये array की values को function में भेज सकतें हैं | निचे उदाहरण में देखें !

उदाहरण:

<!Doctype html>
<html>
 <head>
 </head>
 <body>
   <script type="text/javascript">
   function myFunction(a,b,c)
   {
      let sum = 0;
      sum = a+b+c;
     document.write(`total is: ${sum}`);
   }
   var arr = [10,20,30];
   myFunction(...arr);   
  </script>
 </body>
</html>

देखिये myFunction.apply(null,arr); के बदले myFunction(…arr); कोड लिखकर कितनी आसानी से array की values को function के parameter में assign कर दिया गया और total निकाला गया है |

spread operator के जरिये array concatenation कैसे करें?

spread operator के जरिये दो या दो से अधिक array को आसानी से concat कर सकतें हैं वो भी बिना concat method लगाए |

ES5 version तक concat method के जरिए arrays को concate की जाती थी यानि दो या दो से अधिक arrays को एक साथ मिलाया जाता था |

उदाहरण:

<!Doctype html>
<html>
 <head>
 </head>
 <body>
   <script type="text/javascript">
    let array1 = [10,20,30];
    let array2 = [40,50,60];
    array1 = array1.concat(array2); //es5 version
    console.log(array1);
  </script>
 </body>
</html>

अब इसी उदाहरण को spread operator के जरिए देखेंगे |

<!Doctype html>
<html>
 <head>
 </head>
 <body>
   <script type="text/javascript">
   let array1 = [10,20,30];
   let array2 = [40,50,60];
   array1 = [...array1, ...array2];
   console.log(array1);
  </script>
 </body>
</html>

output

Copy Array

spread operator के जरिए array को दुसरे array में आसानी से copy की जा सकती है | और अगर हम नए array में कुछ extra नयी values डालतें हैं तो ये original array की values को affect नहीं करेगा |

पहले जब हम array को copy करते थे और नए array में कुछ और नयी values डालते थे तो ये original array को भी affect करता था |

उदाहरण:

<!Doctype html>
<html>
 <head>
 </head>
 <body>
   <script type="text/javascript">
    let array1 = [10,20,30];
    let array2 = array1;
    array2.push(40,50);
    console.log(array2);
    console.log(array1);
  </script>
 </body>
</html>

output

output में देखिये हमने एक array2 नाम की array बनायीं है array1 के जरिये | array1 जो original array उसमे 3 values हैं | और जो नयी array बनी है array2 नाम की उसमे 2 extra नए values को push किया गया है |

तो परिणाम के रूप में नयी array में 5 values होनी चाहिए और original array में सिर्फ 3 values होनी चाहिए | पर push method से दोनों array में 5 values हो गयी है | और ये original array को affect कर गया |

इसी disadvantage को ES6 में spread operator के जरिये दूर की जा सकती है | उदाहरण में देखिए

उदाहरण:

<!Doctype html>
<html>
 <head>
 </head>
 <body>
   <script type="text/javascript">
    let array1 = [10,20,30];
    let array2 = [...array1, 40,50];
    console.log(array2);
    console.log(array1);
  </script>
 </body>
</html>

उदाहरण में देखिए array1 से array2 बनाया गया है और साथ ही साथ 2 नए values भी डालें गए हैं spread operator के जरिये | और output में original array की values बदली भी नहीं है |

output:

spread operator replace method

spread operator in object

spread operator को object के साथ भी इस्तेमाल कर सकतें हैं |

जैसे हमने दो arrays को आसानी से concat किया वैसे ही objects को भी आसानी से concat कर सकतें हैं | चलिए उदाहरण से समझतें हैं :

उदाहरण:

<!Doctype html>
<html>
 <head>
 </head>
 <body>
   <script type="text/javascript">
   let obj1 = {
                name : "Rani", 
	           Education :"MCA"
	       };
   let obj2 = {
                job:"Software Developer"
              };
   var obj3 = {...obj1, ...obj2};
   console.log(obj3);
  </script>
 </body>
</html>

output:

spread operator in object

उदाहरण में हमने obj1 और obj2 दो object को concat करके obj3 नाम की नयी object बनाया है |

एक object को दुसरे object में copy भी कर सकतें और साथ ही साथ नए object बदलाव भी कर सकतें | और इससे original object में कोई बदलाव भी नहीं होगा |

उदाहरण:

<!Doctype html>
<html>
 <head>
 </head>
 <body>
   <script type="text/javascript">
   let student = {
                name : "Rani", 
				Education :"MCA",
				hobbies:["painting", "dancing"]
			   }; 	
	//new object creation with name change
	let newStudent = {...student, name:"Raunak"};
	console.log(newStudent);
  </script>
 </body>
</html>

output:

spread operator object copy example

उदाहरण में देखिये student नाम के object से हमने newStudent नाम का नया object बनाया है | और इसकी name value में नयी value डाली है | और original object की value कोई हेरफेर भी नहीं हुयी |

इसी तरह spread operator के प्रयोग से हम array और object के ऊपर आसानी से काम कर सकतें हैं | उम्मीद है आपको spread operator का concept समझ में आया होगा |

अन्य javascript tutorial के सुझाव