تکرار روی شی (Object Iterations)
می خواهی روی «شی (Object)» بگردی؟ این یعنی کلیدها و مقدارها را بخوانی. این صفحه ابزارهای اصلی را ساده و کوتاه نشان می دهد.
مرور سریع متدهای عمومی شی
این ها متدهای مهم شی هستند. هرکدام کاری روشن انجام می دهند.
// کپی ویژگی ها به شی هدف
Object.assign(target, source);
// ساخت شی جدید از شی موجود
Object.create(object);
// آرایه جفت های کلید/مقدار
Object.entries(object);
// ساخت شی از لیست جفت ها
Object.fromEntries(list);
// آرایه کلیدها
Object.keys(object);
// آرایه مقدارها
Object.values(object);
// گروه بندی بر اساس callback (ES2024)
Object.groupBy(object, callback);
Object.assign()
«ادغام (Assign)» یعنی ویژگی های منبع را در هدف کپی کنیم.
const person1 = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
const person2 = {
firstName: "Anne",
lastName: "Smith"
};
Object.assign(person1, person2);
Object.entries()
این متد، جفت های «کلید، مقدار» را آرایه می دهد. سپس راحت می چرخیم.
const person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
let pairs = Object.entries(person);
const fruits = {
Bananas: 300,
Oranges: 200,
Apples: 500
};
let text = "";
for (let [fruit, value] of Object.entries(fruits)) {
text += fruit + ": " + value + "<br>";
}
const fruits = {
Bananas: 300,
Oranges: 200,
Apples: 500
};
const myMap = new Map(Object.entries(fruits));
Object.fromEntries()
لیست جفت ها داری؟ با این متد، شی می سازی.
const fruits = [
["apples", 300],
["pears", 900],
["bananas", 500]
];
const myObj = Object.fromEntries(fruits);
Object.values()
فقط مقدارها را لازم داری؟ این متد کافی است.
const person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
let values = Object.values(person);
Object.groupBy() (ES2024)
«گروه بندی (GroupBy)» آیتم ها را برچسب گذاری و دسته بندی می کند.
const fruits = [
{ name: "apples", quantity: 300 },
{ name: "bananas", quantity: 500 },
{ name: "oranges", quantity: 200 },
{ name: "kiwi", quantity: 150 }
];
function myCallback({ quantity }) {
return quantity > 200 ? "ok" : "low";
}
const result = Object.groupBy(fruits, myCallback);
نکته: این ویژگی جدید است. برای مرورگر قدیمی، راه حل جایگزین نیاز است.
Object.keys()
وقتی فقط کلیدها را می خواهی، از این متد کمک بگیر.
const person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
const keys = Object.keys(person);
حلقه for...in
این حلقه روی ویژگی های قابل شمارش شی می چرخد. مراقب وراثت باش.
const person = {
fname: "John",
lname: "Doe",
age: 25
};
let txt = "";
for (let x in person) {
txt += person[x];
}
گام های تمرینی
- یک شی دانش آموز بساز و روی کلیدها بگرد.
- با
Object.entriesیک جدول متنی بساز. - با
Object.groupByنمره ها را دسته بندی کن.
ادامه مسیر: پروتوتایپ ها و مدیریت ویژگی ها.
جمع بندی سریع
entriesبرای جفت ها عالی است.keysفقط کلیدها را می دهد.valuesفقط مقدارها را می دهد.fromEntriesلیست را شی می کند.groupByآیتم ها را دسته بندی می کند.