Symbol.isConcatSpreadable
এই পরিচিত সিম্বোলটি কনফিগার করতে ব্যবহৃত হয় যে, Array.prototype.concat() মেথড ব্যবহার করার সময় একটি অবজেক্ট তার অ্যারে এলিমেন্টগুলোর মাধ্যমে ফ্ল্যাটেন (flatten) হবে কিনা। যদি এটি false হয়, তবে অ্যারে ফ্ল্যাটেনিং হয় না। ডিফল্টভাবে Symbol.isConcatSpreadable হলো true। তাই যতক্ষণ না এটি স্পষ্টভাবে ডিক্লেয়ার করা হয়, অ্যারে ফ্ল্যাটেনিং এড়ানো যায় না।
সিম্বোল ছাড়া
উদাহরণ
নিচের উদাহরণে, Symbol.isConcatSpreadable সিম্বোলটি স্পষ্টভাবে ডিক্লেয়ার করা হয়নি। তাই ডিফল্টভাবেই অ্যারে ফ্ল্যাটেন হয়েছে আউটপুটে দেখানো মতে।
<html> <body> <script> var arr1 = ['mango', 'apple', 'guava']; var arr2 = ['cashew', 'pista', 'bhadham']; var res1 = arr1.concat(arr2); console.log(res1); </script> </body> </html>
আউটপুট
["mango", "apple", "guava", "cashew", "pista", "bhadham"]
সিম্বোল সহ
উদাহরণ
নিচের উদাহরণে, Symbol.isConcatSpreadable সিম্বোলটি স্পষ্টভাবে ডিক্লেয়ার করা হয়েছে, তাই আউটপুটে দেখানো মতে অ্যারে ফ্ল্যাটেন হয়নি।
<html> <body> <script> var arr1 = ['mango', 'apple', 'guava']; var arr2 = ['cashew', 'pista', 'bhadham']; arr2[Symbol.isConcatSpreadable] = false; var res2 = arr1.concat(arr2); console.log(res2); </script> </body> </html>
আউটপুট
["mango", "apple", "guava", Array(3)]