加密规则如下:
每位数字都加上5,然后用除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换
// 定义函数encryptData对数据进行加密 x为形参
function encryptData(x){
// 得到x中每个位的数并对它进行计算
let qian = parseInt((x / 1000) + 5 % 10);
let bai = parseInt((x % 1000 / 100)+ 5 % 10);
let shi = parseInt((x % 1000 % 100 / 10)+ 5 % 10);
let ge = (x % 10)+ 5 % 10;
// 将第一位和第四位进行交换
let temp1 = qian;
qian = ge;
ge = temp1;
// 将第二位和第三位进行交换
let temp2 = bai;
bai = shi;
shi = temp2;
//定义cipher变量并赋值根据加密规则得到的数
let cipher = qian*1000+bai*100+shi*10+ge*1;
// 将cipher返回
return cipher;
}
// 定义变量text并赋值
let text = +prompt(`请输入要传递的数据:`);
// 输出加密后的数据
console.log(`您的密文为:${encryptData(text)}`);
运行结果如下图:输入传递的数据4位数1234 输出加密后的数据为9876
第二种方式:用字符串的形式传递:详细代码如下图
function encryptData(str){
let sum = '';
for(let i = 0; i < 4; i++){
let site = str[i];
let data = (site * 1 + 5) % 10;
sum += data;
}
return `${sum[3]}${sum[2]}${sum[1]}${sum[0]}`;
}
let text = prompt(`请输入要传递的数据:`);
console.log(`您的密文为:${encryptData(text)}`);
在之后的学习中,遇到类似电话号码的这种数据,我们需要注意的是:通常情况下都是用字符串的形式访问,不容易出错,如果用方法一的话会存在不小心出现错误的问题。
还需注意的是我们在访问字符串中某个字符时可以通过数组名[索引]的方式来访问。