-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathspread-operator.js
62 lines (37 loc) · 3.78 KB
/
spread-operator.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
// স্প্রেড অপারেটরের আসল কাজ হচ্ছে কোনো পুনরাবৃত্তিমূলক ডাটাকে যেমন অ্যারে বা স্ট্রিং কে তাদের নিজের অবস্থানের মধ্যে ছড়িয়ে দেওয়া।
//ঠিক স্প্রেড এর বাংলা অর্থটা যেমন দাঁড়ায়।
// স্প্রেড অপারেটর আসলে এই … তিনটা ডট।
// এখন এই তিনটা ডট আবার অন্যকিছুর ক্ষেত্রেও হতে পারে।
// ES5 এর একটি একটি উদাহরণ দেয়া হল।
var numbers = [1, 2, 3, 4];
function calculate(a, b, c, d) {
console.log('Sum: ' + (a + b + c + d));
}
calculate(numbers); // Sum: 1,2,3,4undefinedundefinedundefined (আনডিফাইন আসবে)
// কারন, ফাংশন এর argument হিসেবে যে ভ্যালু টা দিয়েছি, সেটা পুরোটা একটা অ্যারে।
// কিন্তু আমরা আমাদের ফাংশনে প্যারামিটার নিয়েছি চারটা, a ,b ,c ও d
// আর তাই এটা চারটা আর্গুমেন্টই আশা করছে।
// কিন্তু আমরা পুরো একটা অ্যারে(একটা আর্গুমেন্ট হিসাবে গণ্য হবে
// পাস করে দিয়েছি, আর তাই আমরা আমাদের কাঙ্ক্ষিত ফলাফল পাই নাই।
// এখন এটা এভাবেও সল্ভ করা যেতে পারেঃ
//calculate(1, 2, 3, 4);
// অথবা আমরা যদি numbers অ্যারেটা ইউজ করতে চাই তাহলে এই টেকনিক ইউজ করা যায়ঃ
//calculate.apply(null, numbers);
// যাই হউক ওভারল সবগুলো ব্যাপারই কেমন ঝামেলাপূর্ন।
// এই জন্যেই ইএস৬ এ স্প্রেড অপারেটর আসছে।
// spread অপারেটর ইউজ করে এটি সহজেই করা যাবে।
calculate(...numbers);
// চাইলে স্প্রেড spread অপারেটর ইউজ করে, আরো অনেক কিছুই করা যায়।
// দুটো অ্যারে কে জোড়া দেওয়া যাবে।
// দুটো অ্যারে এর মধ্যে নতুন এলিমেন্ট যুক্ত করা যাবে। ইত্যাদি।
// ES6 এ দুটো অ্যারে এর মধ্যে নতুন এলিমেন্ট যুক্ত করে দেখানো হল।
// আগে ES5 এর একটি উদাহরণ দেয়া হল-
var arrName = ['Rahim', 'Karim', 'Rafiq', 'Jabbar'];
arrName.unshift('Shafiq'); // অ্যারে এর প্রথমে একটি ভ্যালু যুক্ত করা হল।
arrName.push('Salam'); // অ্যারে এর শেষে একটি ভ্যালু যুক্ত করা হল।
console.log(arrName);
// ES6 এ স্প্রেড অপারেটর ইউজ করে, এই কাজ টি অনেক সহজে করা যাবে।
const arrayOne = ['Rahim', 'Karim', 'Rafiq', 'Jabbar'];
const arrayTwo = [10, 20];
const arrayThree = ['Bangladesh', ...arrayOne, ...arrayTwo]; // [ 'Bangladesh', 'Rahim', 'Karim', 'Rafiq', 'Jabbar', 10, 20 ]
console.log(arrayThree);