【问题标题】:variable portability in $.ajax$.ajax 中的变量可移植性
【发布时间】:2014-08-30 17:21:50
【问题描述】:

我知道 ajax 中的 A 是异步的。但我找不到替代我正在尝试做的事情。 我有一个需要用 javascript 数组提供的图表。该数组由 csv 导入制成。 所以我正在尝试创建一个返回带有函数recupCSV() 的数组的函数:

data = [];
objet function (data, objet) {
  var jour = data[3].split("/");
  var start = new Date(jour[2], jour[1], jour[0]);
  var dtS = new Date(start.getFullYear(), start.getMonth(), start.getDate());
  jour = data[4].split("/");
  var end = new Date(jour[2], jour[1], jour[0]);
  var dt = new Date(end.getFullYear(), end.getMonth(), end.getDate());
  var workItem = {id: data[0],name: data[1],lane: data[2],start: dtS,end: dt ,desc: data[5]};
  objet.push(workItem);
}

function recupCSV(data) {
  donnee = [];
  $.ajax({
    url: "http://www.example.com/csvfile.csv",
    aync: false,
    success: function (csvd) {
      csv_as_array = $.csv2Array(csvd);
      for(var i in csv_as_array )
      objet(csv_as_array[i],data);
    },
    dataType: "text",
    complete: function () {
    }
  });
  return data;
}

我可以看到它不起作用的许多原因,但我看不出有任何原因.. ;)

【问题讨论】:

  • 你的代码没有意义。 objet 是一个函数,也是一个数组?是吗?我说不出来。
  • 您多次使用相同的变量名称,例如objet(@Andy 已经说过)、data(在全局和本地范围内)。在尝试使用 CSV 文件之前,您需要解决这些问题。

标签: javascript jquery ajax csv d3.js


【解决方案1】:

好吧,对不起,这里是实际工作的代码:

d3.csv("file.csv", function (error, data) { 
csvAsArray = data;
localStorage.setItem('anobjectwithnoname', JSON.stringify(csvAsArray));
});

然后在某个函数中:

var csv = localStorage.getItem('anobjectwithnoname');
var csvAsArray = JSON.parse(csv);

通过这种方式,我将对象从异步“陷阱”中解救出来;) 再次为凌乱的代码感到抱歉。请不要对尝试和失败类型的学习过于苛刻

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多