🔥 با کمک هوش مصنوعی در کمتر از 6 ماه فول‌استک شوید ...
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ بها دانایی‌فر
مشاهده خروجی متفاوت
جامعه جاوا اسکریپت ایجاد شده در ۱۰ آذر ۱۴۰۰
<p>چرا من اینجا وقتی [<span class=\"hljs-title class_\">Symbol</span>.<span class=\"hljs-property\">isConcatSpreadable</span>] رو اضافه کردم:</p><pre class=\"ql-syntax\" spellcheck=\"false\">        <span class=\"hljs-tag\"><<span class=\"hljs-name\">script</span>></span><span class=\"hljs-meta\">             \'use strict\'</span>             <span class=\"hljs-keyword\">let</span> myOb = {                 <span class=\"hljs-number\">0</span>: <span class=\"hljs-string\">\'Java\'</span>,                 <span class=\"hljs-number\">1</span>: <span class=\"hljs-string\">\'Python\'</span>,                 <span class=\"hljs-attr\">name</span>: <span class=\"hljs-string\">\'Helen\'</span>,                 [<span class=\"hljs-title class_\">Symbol</span>.<span class=\"hljs-property\">isConcatSpreadable</span>]: <span class=\"hljs-literal\">true</span> <span class=\"hljs-comment\">//*</span>             };             <span class=\"hljs-keyword\">let</span> message = [<span class=\"hljs-string\">\'myList\'</span>].<span class=\"hljs-title function_\">concat</span>(myOb);             <span class=\"hljs-variable language_\">console</span>.<span class=\"hljs-title function_\">log</span>(message); <span class=\"hljs-comment\">//before adding * output: [\'myList\', object]</span>         <span class=\"hljs-tag\"></<span class=\"hljs-name\">script</span>></span> </pre><p><span style=\"color: rgb(156, 220, 254);\"> در حروجی فقط:</span></p><pre class=\"ql-syntax\" spellcheck=\"false\">[<span class=\"hljs-string\">\'myList\'</span>] </pre><p>رو نمایش داد؟</p>
<p>پس از چند بار تست کردن، فهمیدم که اولا باید به صورت عدد بنویسم، دوما پراپرتی length هم اضافه کنم. یعنی به این شکل:</p><pre class="ql-syntax" spellcheck="false">        <span class="hljs-tag"><<span class="hljs-name">script</span>></span><span class="hljs-meta">             'use strict'</span>             <span class="hljs-keyword">let</span> myOb = {                 <span class="hljs-number">0</span>: <span class="hljs-string">'Java'</span>,                 <span class="hljs-number">1</span>: <span class="hljs-string">'Python'</span>,                 <span class="hljs-number">2</span>: <span class="hljs-string">'Helen'</span>,                 <span class="hljs-attr">length</span>: <span class="hljs-number">3</span>,                 [<span class="hljs-title class_">Symbol</span>.<span class="hljs-property">isConcatSpreadable</span>]: <span class="hljs-literal">true</span> <span class="hljs-comment">//*</span>             };             <span class="hljs-keyword">let</span> message = [<span class="hljs-string">'myList'</span>].<span class="hljs-title function_">concat</span>(myOb);             <span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(message); <span class="hljs-comment">//before adding * output: ['myList', object]</span>         <span class="hljs-tag"></<span class="hljs-name">script</span>></span> </pre>
بها دانایی‌فر ۱۰ آذر ۱۴۰۰، ۱۴:۵۸

سلام

تایع concat مربوط به آرایه هاست درسته؟ پس ویژگی isConcatSpreadable هم برای آرایه‌ها یا آبجکت‌هایی که لیستی از داده‌ها هستند کار میکنه

بهترین پاسخ
بامین صباغ ۱۳ آذر ۱۴۰۰، ۰۷:۱۹