Symbol.isConcatSpreadable
यह प्रसिद्ध सिंबल यह कॉन्फ़िगर करने के लिए उपयोग किया जाता है कि Array.prototype.concat() मेथड का उपयोग करते समय किसी ऑब्जेक्ट को उसके ऐरे एलिमेंट्स में फ्लैट किया जाना चाहिए या नहीं। यदि यह 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)]