javascript - 简单的 javascript 替代密码
问题描述
我正在尝试将总和的结果加密为 base64 代码。
var map = {
1: 'dG',
2: 'h2, 3: '
gF,
4: 'pz',
5: 'V0'
};
if (map.indexOf(sum1) > -1) {
ans = map.indexOf(sum1)
} else {
console.log("Incorrect");
}
我想将我的号码(sum1)
与我的数组的索引匹配并将字母保存到变量ans
中。
我是编程新手,如果有人可以在这里帮助我,我将不胜感激。如果我解释得不够好,请要求澄清。
解决方案
indexOf 方法适用于数组/字符串,因此由于您有一个Object,所以它不起作用。你的想法是正确的,检查属性是否存在,你只是做错了。
检查对象中是否存在属性的最佳方法是使用hasOwnProperty。
var map = {
1: 'dG',
2: 'h2',
3: 'gF',
4: 'pz',
5: 'V0'
};
function getText (obj, key) {
// if(obj.hasOwnProperty(key)){
// return obj[key];
// } else {
// return null;
// }
return obj.hasOwnProperty(key) ? obj[key] : null;
}
console.log(getText(map, 1));
console.log(getText(map, 5));
console.log(getText(map, 100));
但是由于你有字符串,你不必使用hasOwnProperty
,你可以只使用一个真实的检查,因为字符串评估为 true
var map = {
1: 'dG',
2: 'h2',
3: 'gF',
4: 'pz',
5: 'V0'
};
function getText (obj, key) {
// if (obj[key]) {
// return obj[key];
// } else {
// return null;
// }
return obj[key] ? obj[key] : null;
}
console.log(getText(map, 1));
console.log(getText(map, 5));
console.log(getText(map, 100));
或者只是使用一个数组而不是一个对象来保存你的字符串。数组的问题是第一个索引为零,因此所有索引都会向下移动一个。因此,要使对象中的 1 与数组中的 1 匹配,您必须在索引 0 中放置一些东西。
var map = [null, 'dG', 'h2', 'gF', 'pz', 'V0'];
function getText (obj, key) {
// if (obj[key]) {
// return obj[key];
// } else {
// return null;
// }
return obj[key] ? obj[key] : null;
}
console.log(getText(map, 1));
console.log(getText(map, 5));
console.log(getText(map, 100));
推荐阅读
- excel - “结束如果没有块如果”错误
- curl - 将 CURL 数据发送到 IBM Watson 进行识别
- mosquitto - mosquitto PSK 加密不起作用
- css - 在 Firefox 开发者工具中自动将 CSS “简写”转换为“简写”
- django - Django CMS 从 SQLite 迁移到 PostgreSQL
- excel - 使用 VBA 遍历 Excel OLAP 过滤器中的子项
- docker - 获取所有 docker compose 依赖项的版本列表?
- cordova - cordova-plugin-datecs-printer : 打印非拉丁字符
- python - 使用 Python 3.6.0 在网站的输入字段中输入文本
- visual-studio - Visual Studio 中的 Markdown 锚点