بازگشت به درس

کلیدهای حلقه‌پذیر

اهمیت: 5

ما می‌خواهیم یک آرایه از map.keys() را دورن یک متغیر دیافت کنیم و سپس متدهای مخصوص آرایه را روی آن اعمال کنیم مانند .push.

اما کار نمی‌کند:

let map = new Map();

map.set("name", "John");

let keys = map.keys();

// Error: numbers.push is not a function
keys.push("more");

چرا؟ چگونه می‌توانیم کد را درست کنیم تا keys.push کار کند؟

دلیلش این است که map.keys() یک حلقه‌پذیر را برمی‌گرداند نه یک آرایه.

ما می‌توانیم با استفاده از Array.from آن را به آرایه تبدیل کنیم:

let map = new Map();

map.set("name", "John");

let keys = Array.from(map.keys());

keys.push("more");

alert(keys); // name, more