简体   繁体   English

将数组对象转换为字符串jQuery

[英]Convert Array object into string jquery

I am posting a form via ajax and want to send the form data like string . 我正在通过ajax发布表单,并希望发送诸如string之类的表单数据。 Below is my code . 下面是我的代码。

var formdata=$(this).serializeArray();
var objList = [];
for (var i = 1; i <= $("input[name=Range]").val(); i++) {

tempObj = {};

$.each(formData, function (key, value) {


                        if (value.name.startsWith("member"){

                        }
                        else {
                            tempObj[value.name] = value.value;
                        }

                    });


                    tempObj["member"] = $("input[name=member"+i+"]").val();

                    tempObj["Range"] = 1;




                    objList.push(tempObj);

                }

                console.log(objList);

If Range = '2' I get 2 Array Object in console like this: 如果Range ='2',我将在控制台中得到2个数组对象,如下所示:

Name:"John"  
Department:"Training"  
Areacode:"23"
Member:"2"



Name:"Sam" 
Department:"HR"
Member:"2"
Areacode:"13"

But I want to post is data as a Form Url like: 但是我想将数据发布为表单网址,例如:

"Name=John&Department=Training&Member=2&Areacode=23"   



  "Name=Sam&Department=HR&Member=1&Areacode=13" 

What can I do in code ? 我可以用代码做什么?

I will continue your code insteed of modifying what you have. 我将继续您的代码,指导您修改自己的内容。

We start from objList . 我们从objList开始。 And we will map this array to create a new array but insteed of an object array it will be a string array. 我们将映射该数组以创建一个新数组,但是在对象数组的指导下,它将是一个字符串数组。

You can then add the reduce method to iterate over the object and crete you string no matter how many values it has. 然后,您可以添加reduce方法来遍历对象,并为您的字符串添加crete,无论其具有多少值。

 var formdata = $(this).serializeArray(); var objList = [{ Name:"John", Department:"Training" , Areacode:"23", Member:"2"},{ Name:"Sam" , Department:"HR", Member:"2", Areacode:"13", Extra:"value"}]; let arrStr = objList.map(obj => { return Object.entries(obj).reduce( (key, val,i) => `${key}${i>0?'&':''}${val[0]}=${val[1]}`, ""); }) console.log("This is the array of strings:"+arrStr); console.log("String 1:"+arrStr[0]); console.log("String 2:"+arrStr[1]); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> "Name=John&Department=Training&Member=2&Areacode=23" 

Hope this helps :) 希望这可以帮助 :)

From the tempObj you already have: 在tempObj中,您已经有:

 const tempObj = { Name:"John" , Department:"Training" , Areacode:"23", Member:"2" } const strObj=Object.entries(tempObj).reduce( (str, entry,i) => `${str}${i>0?'&':''}${entry[0]}=${entry[1]}`, "") console.log(strObj) 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM