我试图将总和的结果加密为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
。
我是编程新手,如果有人可以在这里帮助我,我将不胜感激。如果我的解释不够好,请澄清。
答案 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