2 回答
TA贡献1863条经验 获得超2个赞
我是否必须遍历才能找到匹配项...
是的。对象按属性名称提供查找,但不按属性值提供查找。因此,例如:
const fruitName = Object.keys(fruit).find(name => fruit[name] === myFruit);
现场示例:
const fruit = Object.freeze({ Apple: 0, Banana: 1, Cherry: 2});
const myFruit = 1;
const fruitName = Object.keys(fruit).find(name => fruit[name] === myFruit);
console.log(fruitName);
它将获得属性名称的数组,然后用于Array.prototype.find
查找第一个具有匹配值的属性myFruit
。
TA贡献1836条经验 获得超3个赞
这就是打字稿处理枚举的方式。创建一个对象,该对象将Apple键指向0并0指向Apple。因此,它可以双向工作。这样,您不必遍历对象的键并每次都使用数字来取回键
const fruit = {};
fruit[fruit["Apple"] = 0] = "Apple";
fruit[fruit["Banana"] = 1] = "Banana";
fruit[fruit["Cherry"] = 2] = "Cherry";
console.log(fruit.Banana)
console.log(fruit[2])
那只是一种奇特的写作方式:
const fruit = {
Apple: 0,
Banana: 1,
Cherry: 2,
0: "Apple",
1: "Banana",
2: "Cherry"
}
添加回答
举报