آرایهها - شناسه خالی در جاوااسکریپت


در گولنگ، _ (شناسه خالی) وجود دارد.

myValue, _, _ := myFunction()

به این ترتیب میتوانید مقادیر بازگشتی دوم و سوم یک تابع را نادیده بگیرید.

در جاوااسکریپت امکان انجام این کار وجود دارد؟

function myFunction() {
   return [1,2,3]
}

// Something like this
const [first, _, _] = myFunction()

پاسخ شماره ۱

هنگام بازسازی ساختار، آیتمهای استفادهنشده میتوانند کاملاً حذف شوند (نیازی به مشخص کردن نام متغیری که بعداً استفاده نمیشود نیست)، و آیتمهای انتهایی آرایه که استفاده نمیشوند حتی نیازی به کاما ندارند (میتوانید آرایه ] را در آخرین آیتم بازسازیشدهای که نیاز دارید پایان دهید):

function myFunction() {
   return [1,2,3]
}

const [first] = myFunction()
const [, second] = myFunction()
const [,, third] = myFunction()

console.log(first, second, third);

پاسخ شماره ۲

برای کسانی که با گوگل به اینجا میآیند. تا جایی که من پیدا کردم، جاوااسکریپت مکانیزمی برای آرگومانهای خالی تابع ندارد. مثل foo(one, two, three) که تبدیل شود به foo(_, _, three) اگر one و two در تابع استفاده نشوند.

این foo({}, {}, three) وجود دارد.

ظاهراً همه چیز میتواند یک شیء ناشناس باشد. اما نمیدانم آیا 100٪ بدون اثر جانبی است یا نه.