如何使用jquery将数组转换为字符串

时间:2013-11-06 05:52:31

标签: javascript jquery arrays

我从表中接收数据。并将它们保存在数组中。

我想知道如何使用以下格式将数组转换为字符串。

在我的请求中,用户可以添加新行并输入问题和答案。

这就是为什么我认为我可以将所有数据放在“form:input”

我的代码:

var param = [];
$("#tblPets tbody tr").each(function(index){

 param.push({
    question: $("textarea.question", this).val(),
    answer: $("textarea.answer", this).val(),
 });

});
var json = JSON.stringify(param); 

    $("form #queAns").val(json);

我可以将此数组转换为JSON字符串。但格式不是我正在寻找的。

例如:

我希望我的字符串看起来像:

问题,回答|问题,回答|问题,回答|

怎么做?

3 个答案:

答案 0 :(得分:1)

尝试使用JQuery的$.map()函数,然后循环遍历对象的属性。

var param = [];
$("#tblPets tbody tr").each(function(index){

 param.push({
    question: $("textarea.question", this).val(),
    answer: $("textarea.answer", this).val(),
 });

});

console.log(param);

var result = '';
$.map(param, function(n) {
    for(var prop in n){
        result += n[prop] + ',';
    }
    result = result.substring(0, result.length-1) + '|';
});

console.log(result);

jsFiddle - updated to remove extra comma

StackOverflow re: iterating over object properties

答案 1 :(得分:0)

将数组转换为字符串的方法太多了:

您可以使用.tostring()

myArray .toString();

试试这个:

使用Javascript:

function myFunction()
{
  var myArray = ["Banana", "Orange", "Apple", "Mango"];
  myArray .toString();
  var x=document.getElementById("demo");
  x.innerHTML=myArray;
}

HTML:

<p id="demo">Click the button to convert the array into a String.</p>

Live Example

答案 2 :(得分:0)

我同意这些评论,但是这里有一个想法,如果你想要精确的编码它会是什么样子,并且可以循环遍历数组。

var param = [], string = '';
$("#tblPets tbody tr").each(function(index){

 param.push({
    question: $("textarea.question", this).val(),
    answer: $("textarea.answer", this).val(),
 });

});

param.forEach( function (obj) { 
string += obj.question+','obj.answer+'|';
})