چطوری یک کلید در آبجکت جاوااسکریپت رو با توجه به مقدارش پیدا کنیم؟
How to get a key in a JavaScript object by its value
من یک آبجکت ساده جاوااسکریپت دارم که ازش به عنوان یک آرایه استفاده میکنم.
آیا راه سادهای برای بدست آوردن کلید از روی مقدارش وجود دارد یا باید به صورت دستی آبجکت رو پیمایش کنم و کلیدو پیدا کنم؟
برای پیدا کردن یک کلید بر اساس مقدارش تو یک آبجکت جاوااسکریپتی ، بهترین و سادهترین روش استفاده از متد 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"]
این روشها هم به خوبی کار میکنند و هم قابلیت گسترش برای موارد پیچیدهتر رو دارند.