#javascript
Вопрос:
Я хочу получить доступ к ключу объекта в соответствии со значением, которое он был выведен, например:
У меня есть этот объект
var characters = {
a: "0",
b: "1",
c: "2",
d: "3",
e: "4",
f: "5",
g: "6",
h: "7",
i: "8",
j: "9"
И у меня есть эта сумма:
var result = 2 2
Результат будет 4, поэтому я хотел бы вывести клавишу e в своей консоли. Я пытался использовать этот метод Object.keys()
, но он просто возвращает значение ключа и не возвращает его в соответствии со значением.
Комментарии:
1. Как насчет
Object.entries()
этого ?2. Почему бы просто не использовать массив и не получить значение по индексу?
3.
Object.entries(characters).find(([,c]) => c == 4)?.[0]
Ответ №1:
Мы можем использовать Object.entries и Array.find, а также некоторое деструктурирование, чтобы найти правильный ключ, например:
var characters = {
a: "0",
b: "1",
c: "2",
d: "3",
e: "4",
f: "5",
g: "6",
h: "7",
i: "8",
j: "9"
}
let value = 2 2;
// Use Array.find with == rather than strict equality, since we're comparing numbers and strings.
let [key, val ] = Object.entries(characters).find(([key, val]) => val == value);
console.log("Result key:", key);
Ответ №2:
вы можете использовать функцию Object.entries и функцию Array.prototype.find, подобную этой:
Object.entries(characters).find(el => el[1] === result.toString())[0]
Комментарии:
1.
string === number
всегда будет ложью!