1

基本上,我有一个多维数组,我需要将它构建成一个简单的字符串。

一个很简单的问题,尽管它已经吞噬了我很长一段时间,因为我似乎无法确定它。

这是一个示例,说明我的数组仅包含 3 个问题:

[["question1","answer1","answer2","answer3","answer4"],["question2","answer1","answer2","answer3","answer4"],["question3","answer1","answer2","answer3","answer4"]]

例如,D.rows[0][0]将是“question1”和D.rows[2][3]“answer3”,只是为了澄清。

以下是它必须如何保存到字符串中:

question1,answer1,answer2,answer3,answer4 
question2,answer1,answer2,answer3,answer4 
question3,answer1,answer2,answer3,answer4 

每个元素之间必须有一个逗号,并且每个问题必须用换行符分隔。

这是我目前没有工作的:

var fullString;
for (i = 0; i < csvArray.length; ++i) 
{
    second = secondArray[i];
    for (j = 0; j < second.length; ++j) 
    {
        fullString += entry[j] + "'";
    }
    fullString += "\n";
}

提前致谢!

4

6 回答 6

1

尝试这个

var s,a=[["question1","answer1","answer2","answer3","answer4"],"question2","answer1","answer2","answer3","answer4"],["question3","answer1","answer2","answer3","answer4"]];
for(i=0; i < a.length; i++){
    s=(s)?s+"\n\r"+a[i].join():a[i].join();
}

jsfiddle 示例

在您自己的示例中:由于您要直接添加 to fullString,因此它应该有一个空字符串作为值,否则您将undefined在一开始就得到。

var fullString="";

这部分second = secondArray[i];应该是

var second = csvArray[i];

以同样的方式,这fullString += entry[j] + "'";应该是

fullString += second[j] + ",";
于 2013-08-24T06:09:08.180 回答
1

一个班轮:

var result = [["question1","answer1","answer2","answer3","answer4"],["question2","answer1","answer2","answer3","answer4"],["question3","answer1","answer2","answer3","answer4"]].join('\r\n');

于 2013-08-24T06:13:07.973 回答
0

This might be your solution if you plan ot change separators or number of answers.

var array = [["question1","answer1","answer2","answer3","answer4"],["question2","answer1","answer2","answer3","answer4"],["question3","answer1","answer2","answer3","answer4"]],
string = "";

for (var i = 0; i <= array.length - 1; i++) {
     string +=array[i].join(', ');
     string += "\n";
}

Also, in the less readable but also effective way, for any object of this structure

string = array.join('\r\n');
于 2013-08-24T06:17:56.523 回答
0

像这样的东西:

var questionAnswerSet= { “question1” : [
{ “answer1” : “value”, “answer2” : “value”, “answer3” : value} ],
“question2” : [
{ “answer1” : “value”, “answer2 " : "值", "answer3" : 值} ], }

并像这样访问:

questionAnswerSet[0].answer2 // 问题一答案 2

questionAnswerSet[1].answer2 // 问题二答案 2

于 2013-08-24T06:02:12.610 回答
0

如果你有一个这样的数组......

var arr = [["question1","answer1","answer2","answer3","answer4"],["question2","answer1","answer2","answer3","answer4"],["question3","answer1","answer2","answer3","answer4"]];

然后...

var strArr  =  arr.join(',');
var strLine =  arr.join('\n'); // string with line breaks.

会为你做的。

如果你想为每个问答块使用不同的字符串,那么......

var strJoinArr = [], strJoinLines = '';
for(var i = 0; i < arr.length; i++){
    strJoinArr.push(arr[i].join(','));
    strJoinLines += arr[i].join(',')+ '\n'; // string with line break
}

然后要访问每个部分,您可以使用索引,

例如,strJoinArr[2]将返回'question3,answer1,answer2,answer3,answer4'

更多关于.join() 更多关于.push()

于 2013-08-24T06:07:48.833 回答
0
for (var i=0; i<yourArray.length; i++) { // iterate on the array
   var obj = yourArray[i];
   for (var key in obj) { // iterate on object properties
      var value = obj[key];
      console.log(value);
   }
}
于 2013-08-24T06:10:03.207 回答