我正在尝试在Javascript(n ^ e mod n)中为我的数组中的每个元素e执行计算,然后输出随后创建的新数组。我该怎么做?这是我到目前为止已经想到的,但代码不起作用。
这是我到目前为止已经想到的,但代码不起作用。
function encryptText() {
var plaintext = document.getElementById('plaintext').value;
var n = letterValue(String(plaintext));
ciphertext = array()
foreach(addon_array as key => col) {
ciphertext[key] = Math.pow(col, e) % n;
}
document.getElementById("output3").innerHTML = "Encrypted text = " + ciphertext;
}
我希望得到一个修改过的整数数组(密文)作为结果。谢谢
您可以在数组上使用Javascript map()函数。
const arr = [1, 2, 3];
const newArr = arr.map(i => i * 2);
// should be [2, 4, 6]
console.log(newArr);
使用Javascript map函数,如下所示:
function encryptText() {
var plaintext = document.getElementById('plaintext').value;
var n = letterValue(String(plaintext));
ciphertext = addon_array.map((el) => Math.pow(el, e) % n);
document.getElementById("output3").innerHTML = "Encrypted text = " + ciphertext;
}
你在javascript中使用php语法:)
在js中它应该看起来像这样
function encryptText() {
var plaintext = document.getElementById('plaintext').value;
var n = letterValue(String(plaintext));
var ciphertext = []
for(var key in addon_array) {
let col = addon_array[key]
ciphertext[key] = Math.pow(col, e) % n;
}
document.getElementById("output3").innerHTML = "Encrypted text = " + ciphertext;
}
但正如前面提到的,在js中更好的方法是使用Array.map函数
function encryptText() {
var plaintext = document.getElementById('plaintext').value;
var n = letterValue(String(plaintext));
var ciphertext = addon_array.map((el) => Math.pow(el, e) % n);
document.getElementById("output3").innerHTML = "Encrypted text = " + ciphertext;
}
它应该工作,如果你确定,addon_array
真的是数组,而不是一个对象。 js中的数组与php略有不同。阅读更多here