推送数组无法在Javascript的循环内工作

时间:2019-02-11 10:27:16

标签: javascript

我见过人们问同样的问题,但是答案并不完全是我想要的。我知道这可能是一个基本问题,但是我的Javascript代码中的push函数无法正常工作。

我有一个字符串数组,例如[“ hey”,“ how”,“ are”,“ you”]。

我想加密这些单词并将它们保存在另一个数组中。

我已经尝试过使用for循环作为一种非常基本的措施,并且我认为这会起作用。我在下面附上我的代码。

var tag = document.getElementById('file_id')
function decryption(){
    var arr = tag.value.split(",");
    var encrypted_array = {};
    for (let i = 0; i<arr.length; i++){

        var abc = CryptoJS.SHA1(arr[i].toString());
        console.log(abc.toString());
        encrypted_array.push(abc.toString());
    }
    console.log("woah");
    console.log(arr);
    console.log(encrypted_array);
}

$('#decryption_form').submit(function(e){
    decryption();
    alert("submitted")

});

我不想要任何复杂的代码,我只想知道为什么我会收到一条错误消息,指出“ encrypted_array.push”不是一个函数,我该如何纠正?

2 个答案:

答案 0 :(得分:0)

将var encryption_array定义为[]

var tag = document.getElementById('file_id') function decryption(){
    var arr = tag.value.split(",");

    var encrypted_array = [];
    for (let i = 0; i<arr.length; i++){

        var abc = CryptoJS.SHA1(arr[i].toString());
        console.log(abc.toString());
        encrypted_array.push(abc.toString());
    }
    console.log("woah");
    console.log(arr);
    console.log(encrypted_array); }

$('#decryption_form').submit(function(e){
    decryption();
    alert("submitted")

});

答案 1 :(得分:0)

这样定义数组:

 var encrypted_array = []; 

不是这样的:

var encrypted_array = {};