如何解决“未捕获的TypeError:arrayOfValues.push不是函数”

时间:2019-06-01 08:08:45

标签: javascript jquery arrays

我是JavaScript和jQuery新手。我认为,这是一个简单的JavaScript语法错误,并且提供了一个我无法理解的简单解决方案。

我正在尝试使用push()方法将值附加到一维数组。特定的代码行是

    arrayOfValues = arrayOfValues.push(
        value['value']
        );

我收到“未捕获的TypeError:arrayOfValues.push不是函数。”

我想在一个提交事件中捕获表单数据,并为表单中每个项目的值创建一维数组。

这是my site

这是the particular page,具有表单。

我已经成功捕获了formData,它是一个对象数组,每个对象的格式为{name, value}对。我想创建值的一维数组。

整个JavaScript是:

    function captureSubmitEvent(evt) {
      array = $('form').serializeArray();
      console.log('==> ** Submit Event Captured ** <==');
      console.log('Log evt : ' + evt);
      console.log('Log evt.target : ' + evt.target);
      console.log('Log serializeArray : ' + JSON.stringify(
        array
      ));
      console.log('Log array : ' + array
        );
    var formData = new FormData();
    formData = array;
    var arrayOfValues = [];
    for(var value of formData.values()){
      console.log(value['value']);
      arrayOfValues = arrayOfValues.push(
        value['value']
        );
    };
    for(var i = 0; i < arrayOfValues.length; i++){
      console.log(arrayOfValues[i]
        );
      };   
    };

   addEventListener('submit', captureSubmitEvent);

控制台的屏幕截图太小,难以阅读,无论如何我都没有信誉。所以,我在这里复制并复制了内容。

==> **捕获捕获的提交事件** <==

test-register-2019:69 Log evt:[对象事件]

test-register-2019:70记录evt.target:[object HTMLFormElement]

test-register-2019:71日志serializeArray:

[

{“名称”:“电子邮件”,“值”:“ website.fhc@gmail.com”},

{“名称”:“ fname”,“值”:“史蒂夫”},

{“ name”:“ lname”,“ value”:“ Alexander”},

{“名称”:“ select-yui_3_17_2_1_1462088435634_39626-field”,“值”:“不确定”},

{“名称”:“ select-yui_3_17_2_1_1462088435634_40427-field”,“值”:“不确定”},

{“名称”:“ select-yui_3_17_2_1_1462088435634_41125-field”,“值”:“不确定”},

{“名称”:“ select-yui_3_17_2_1_1462088435634_41882-field”,“值”:“不确定”},

{“名称”:“ select-yui_3_17_2_1_1462088435634_43262-field”,“值”:“不确定”},

{“名称”:“ select-yui_3_17_2_1_1464136532166_31165-field”,“值”:“不确定”}

]

test-register-2019:74日志数组:[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象],[对象对象]-test-register-2019:80

website.fhc@gmail-测试注册-2019:80

Steve-test-register-2019:81

未捕获的TypeError:arrayOfValues.push不是函数     在captureSubmitEvent(test-register-2019:81)上-captureSubmitEvent @ test-register-2019:81

第81行是arrayOfValues.push()行,在上面被标识为产生错误的行。

所以问题是:

  1. 为什么会出错?

  2. 什么是生成arrayOfValues []的正确JavaScript代码?

0 个答案:

没有答案