如何解码javascript中的字符串?

时间:2017-07-01 08:57:24

标签: javascript jquery

我正在尝试使用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);
    }

我创建了一个传递messagekey的函数。

预期输出 :: 打开

实际上,使用密钥在输入message(加密消息)中重复字符串包。所以我需要解码消息。

2 个答案:

答案 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....

Sample here