简单的javascript替代密码

时间:2018-10-19 13:01:27

标签: 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

我是编程新手,如果有人可以在这里帮助我,我将不胜感激。如果我的解释不够好,请澄清。

2 个答案:

答案 0 :(得分:0)

indexOf方法适用于数组/字符串,因此由于您拥有Object,因此该方法将不起作用。您认为检查该属性是否存在是正确的,只是您以错误的方式进行操作。

检查属性是否存在于对象中的最佳方法是使用hasOwnProperty

src

但是由于您有字符串,因此不必使用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));,因为字符串的值为true,所以您可以使用真实检查

hasOwnProperty

或者只使用一个数组而不是一个对象来保存您的字符串。数组是第一个索引为零,因此所有索引都会向下移动一个。因此,要使对象中的1与数组中的1匹配,必须在索引0中放入一些内容。

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 :(得分:0)

鉴于您对问题的评论,我决定增加。请注意,这与密码无关...我将把它留给您重构。

  • 对象中固定的语法(它是一个对象)
  • 添加了在简单布局下获取对象键和值的方法
  • 将从对象获取的对象值用作数组(/Api/GetData?selection=1234,7432,23
  • 创建了一个传递这些值的函数,我想寻找一个函数
  • 返回了一个带有一些有趣属性的对象,以说明如何做到这一点

values