0

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

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

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

这就是为什么我认为我可以将所有数据放在“表单:输入”中

我的代码:

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 字符串。但格式不是我想要的。

例如:

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

问题,答案|问题,答案|问题,答案|

这个怎么做??

4

3 回答 3

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 - 更新以删除额外的逗号

StackOverflow re:迭代对象属性

于 2013-11-06T06:13:46.207 回答
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>

现场示例

于 2013-11-06T06:04:33.493 回答
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+'|';
})
于 2013-11-06T06:13:03.377 回答