Đảo ngược ánh xạ object trong JavaScript
Giả sử, chúng ta có một đối tượng như sau:
const products = {
"Pineapple":38,
"Apple":110,
"Pear":109
};
Tất cả các khóa là duy nhất về bản thân chúng và tất cả các giá trị là duy nhất về bản thân chúng.
Chúng ta cần viết một hàm chấp nhận một giá trị và trả về khóa của nó. Giả sử chúng ta đã tạo hàm findKey().
Ví dụ, findKey(110) nên trả về "Apple".
Chúng ta sẽ tiếp cận bài toán này bằng cách trước tiên đảo ngược ánh xạ giá trị thành khóa và sau đó đơn giản sử dụng ký hiệu đối tượng để tìm giá trị của chúng.
Do đó, hãy viết mã cho hàm này:
Ví dụ
Mã thực hiện như sau:
const products = {
"Pineapple":38,
"Apple":110,
"Pear":109
};
const findKey = (obj, val) => {
const res = {};
Object.keys(obj).map(key => {
res[obj[key]] = key;
});
// nếu giá trị không có trong đối tượng
// trả về false
return res[val] || false;
};
console.log(findKey(products, 110));
Đầu ra
Kết quả trong console sẽ là:
Apple