二维阵列

嗨,
我有一个从php读入数组的javascript函数.每条记录被$拆分,然后每个字段被^拆分.我想知道有没有人能帮我把这些数据放到一个二维数组中?这就是我到目前为止所拥有的.

选择 | 换行 | 行号
  1. function drawExisting() {
  2.     if (request.readyState ==4) {
  3.         var returned = request.responseText;
  4.         var recordSplit = returned.split("$");
  5.         var record = recordSplit[0];
  6.         alert(record);
  7.         var fieldSplit = record.split("^");
  8.         var object_name = fieldSplit[0];
  9.         var xpos = fieldSplit[1];
  10.         var ypos = fieldSplit[2];
  11.         var height = fieldSplit[3];
  12.         var width = fieldSplit[4];
  13.         // alert(object_name + " " + xpos + " " + ypos + " " + height + " " + width);
  14.  
  15.         }
  16. }    

这给了我第一个记录的结果

# 回答1


循环遍历recordSplit(一个数组)并将每个fieldSplit(也是一个数组)设置为一个数组变量.
# 回答2


让我头疼的问题是,您必须声明数组的大小.我可以声明一个不带大小的数组吗?
# 回答3


您不需要声明数组的大小.您可以这样声明它:

选择 | 换行 | 行号
  1. var arr = [];

就是这样.

# 回答4


我在这条路上走对了吗?

选择 | 换行 | 行号
  1. function drawExisting() {
  2.     if (request.readyState ==4) {
  3.         var record = [];
  4.         var returned = request.responseText;
  5.         var recordSplit = returned.split("$");
  6.         for (i=0; i < record.length; i++) {
  7.             record = recordSplit[i];
  8.             var fieldSplit = record.split("^");
  9.             var object_name = fieldSplit[0];
  10.             var xpos = fieldSplit[1];
  11.             var ypos = fieldSplit[2];
  12.             var height = fieldSplit[3];
  13.             var width = fieldSplit[4];
  14.             alert(object_name + " " + xpos + " " + ypos + " " + height + " " + width);
  15.         }
  16.  
  17.         }
  18. }    
# 回答5


说大也大吧.循环应该在recordSplit上,而不是Record上.然后使用Push()方法将fieldSplit数组添加到记录中.
# 回答6


我已经破解了它.尽管如此,还是要感谢你的帮助.只是过了一段时间,这个概念就进入了我的厚厚的脑袋.这是我的代码.

选择 | 换行 | 行号
  1. function drawExisting() {
  2.     if (request.readyState ==4) {
  3.         cv = document.getElementById("canvas");
  4.         var returned = request.responseText;
  5.         var splitResult = returned.split("$");
  6.         for (var i=0;i<splitResult.length-1;i++) {
  7.             var record = splitResult[i];
  8.             // alert(record);
  9.             var splitRecord = record.split("^");
  10.                 var newObject = document.createElement('div');
  11.                 newObject.id=splitRecord[0];
  12.                 newObject.innerHTML=splitRecord[0];
  13.                 newObject.style.height=splitRecord[3]/10;
  14.                 newObject.style.width=splitRecord[4]/10;
  15.                 newObject.style.top=splitRecord[2];
  16.                 newObject.style.left=splitRecord[1];
  17.                 newObject.onmousedown=function(){grab(this);}
  18.                 cv.appendChild(newObject);
  19.  
  20.         }
  21.         }
  22. }    
# 回答7


所以您最终不需要使用二维数组?

标签: Javascript

添加新评论