模块导出对象搜索和获取项目 node.js
Posted
技术标签:
【中文标题】模块导出对象搜索和获取项目 node.js【英文标题】:module exports object searching and getting items node.js 【发布时间】:2021-03-22 05:35:30 【问题描述】:我有这个文件叫file.js
:
module.exports =
emojis
const emojis =
"a": "????",
"b": "????",
"c": "????",
"d": "????",
"e": "????",
"f": "????",
"g": "????",
"h": "????",
"i": "????",
"j": "????",
"k": "????",
"l": "????",
"m": "????",
"n": "????",
"o": "????",
"p": "????",
"q": "????",
"r": "????",
"s": "????",
"t": "????",
"u": "????",
"v": "????",
"w": "????",
"x": "????",
"y": "????",
"z": "????",
我用const emojis = require("../file.js")
导入了它
假设我有一个字符 const char = "p"
我该怎么做这两件事:
测试 char 是否等于和那些“键”或索引,所以左边。
第二个如果是的话,我想得到合适的值,所以右边。
【问题讨论】:
1-if(char in Object.keys(emojis))
2- emojis[char]
不应该是const emojis = require ....
,因为导出的东西是 emojis: ...
?
if(emojis[char]) const emodji = emojis[char]
?
【参考方案1】:
const emojis = require("../file.js")
const char = "p";
if(char in emojis)
let rightvalue = emojis[char];
【讨论】:
【参考方案2】:您已经导入了表情符号,并且您有一个名为 char 的变量。
1.由于 emojis 是一个对象,并且您想查看 char 是否等于 emojis 对象中的任何键,您可以使用 Object.keys(emojis)
并返回一个数组,以便您可以使用 forEach
循环或 for 循环对其进行迭代并将Object.keys
返回的数组中的每个值与您的变量 char 进行比较,如果它等于任何保存到变量的值,则可以将其称为值
这里是===
const char = "p"
let value;
Object.keys(emojis).forEach(x=>
if(x===char)
value=x;
)
-
您可以通过此操作访问右侧的值
emojis[value]
你也可以使用 for..in 循环 即
for(x in emojis)
if(x === char)
value = x;
// x will the the name a property if you wish to access the value you'll
//have to do this emojis[x] or outside the loop emojis[value]
【讨论】:
【参考方案3】:由于您导出本质上是地图的对象,因此您可以简单地查找字符,因为它们引用对象的键。考虑这个简单的例子:
const emojis =
"a": "?",
"b": "?",
"c": "?",
"d": "?"
;
function findKey(key, map)
return map[key];
const keys = ["c", "p"];
keys.forEach(key =>
const mappedValue = findKey(key, emojis);
if(mappedValue)
console.log(`found value '$mappedValue' for key '$key'`);
else
console.log(`did not find value for key '$key'`);
);
【讨论】:
以上是关于模块导出对象搜索和获取项目 node.js的主要内容,如果未能解决你的问题,请参考以下文章