پرسش

چطوری یک کلید در آبجکت جاوااسکریپت رو با توجه به مقدارش پیدا کنیم؟

How to get a key in a JavaScript object by its value

من یک آبجکت ساده جاوااسکریپت دارم که ازش به عنوان یک آرایه استفاده می‌کنم.

آیا راه ساده‌ای برای بدست آوردن کلید از روی مقدارش وجود دارد یا باید به صورت دستی آبجکت رو پیمایش کنم و کلیدو پیدا کنم؟

1403/06/05
پاسخ
محمدامین سعیدی راد
بیوگرافی محمدامین سعیدی راد

برای پیدا کردن یک کلید بر اساس مقدارش تو یک آبجکت جاوااسکریپتی ، بهترین و ساده‌ترین روش استفاده از متد find به همراه Object.keys هست. این روش آبجکت رو پیمایش می‌کنه و اولین کلیدی که مقدارش با مقدار مورد نظر شما مطابقت داره رو برمی‌گردون:

function getKeyByValue(object, value) {
return Object.keys(object).find(key => object[key] === value);
}
const map = { first: "1", second: "2", third: "3" };
const key = getKeyByValue(map, "2");
console.log(key); // "second"

این روش ساده، تمیز و قابل فهمه. همچنین در صورتی که آبجکت دارای مقادیر تکراری هست و بخواید همه کلیدهایی که با مقدار تطابق دارن رو دریافت کنید، می‌توانید به جای find از filter استفاده کنید:

function getKeysByValue(object, value) {
return Object.keys(object).filter(key => object[key] === value);
}
const keys = getKeysByValue(map, "2");
console.log(keys); // خروجی: ["second"]

این روش‌ها هم به خوبی کار می‌کنند و هم قابلیت گسترش برای موارد پیچیده‌تر رو دارند.

 

پاسخ: 1403/06/05
آخرین آپدیت: 1403/08/05