我正在尝试使用JavaScript解码我的字符串。这是我的code on JSBin。
decordMessage('oppeeennnn','1234');
function decordMessage(m,k) {
var msg = m.split('');
var keysplit = k.split('');
var str ='';
var j =0
for (var i=0;i<msg.length;){
str += msg[i];
if(j < keysplit.length -2 &&i < keysplit.length && keysplit[j]){
i = i + parseInt(keysplit[j]);
j++;
}
console.log(i +"i")
console.log(str);
}
console.log("after");
console.log(str);
}
我创建了一个传递message
和key
的函数。
预期输出 :: 打开
实际上,使用密钥在输入message
(加密消息)中重复字符串包。所以我需要解码消息。
答案 0 :(得分:1)
你忘了在其他情况下休息一下,这就是为什么它无限循环直到它耗尽内存。在浏览器中运行它,选项卡将崩溃:
function decordMessage(m,k) {
var msg = m.split('');
var keysplit = k.split('');
var str = '';
var j = 0, i = 0;
while (j < keysplit.length
&& i < msg.length) {
str += msg[i];
i += parseInt(keysplit[j]);
j++;
}
console.log(str)
}
顺便说一下,编写循环的更好方法是:
android:layout_width = "0dp"
答案 1 :(得分:1)
这可能对你有所帮助。
decordMessage('oppeeennnn', '1234');
function decordMessage(m, k) {
var arr = m.split("");
uniqueArray = arr.filter(function(item, pos) {
return arr.indexOf(item) == pos;
});
console.log(uniqueArray.join(""));
}
假设加密逻辑为123456....