【问题标题】:return value is not working outside the function?返回值在函数之外不起作用?
【发布时间】:2019-03-23 12:43:18
【问题描述】:

当我们在 .on('end') 函数内的 console.log(restaurantdata) 返回日志但在函数日志外无法给出未定义的值时。

    var restaurantdata=[];
    fs.createReadStream('restaurantsa9126b3.csv')  
    .pipe(csv())
    .on('data', (data) => restaurantdata.push(data))  
    .on('end', () => {
        return restaurantdata; 

      }) 
      console.log(restaurantdata);
      yield this.render('home',{
        restaurantdata:restaurantdata,
    });

【问题讨论】:

  • 您能否提供一个 CSV 数据样本以及您对代码的期望?
  • 我希望将我的 csv 数据转换为 JSON 格式
  • 您是否查看了解决方案的链接?另外,您的共享文件(我们需要访问权限才能检查),最好在问题中粘贴几行。
  • 好的,我会提供

标签: node.js node-csv-parse


【解决方案1】:

你可以试试这个……

function convert(data) {
    data = data.split('\n');
    var heading = data[0].split(',');
    var arr = [];
    var line,words,err;
    for(var i=1;i<data.length-1 ;++i){
        var obj = {};
        line=data[i];
        words = line.split(',');
        var k =0;
        for(var j=0;j<words.length;++j){
            if (words[j].indexOf('\"')==-1){
                obj[heading[k]] = words[j];
                k++;
            } else{
                err = [];
                err.push(words[j].substring(1,words[j].length));
                j++;
                while (words[j].indexOf('\"')==-1) {
                    err.push(words[j]); j++;
                }
                err.push(words[j].substring(0,words[j].length-1));
                obj[heading[k]] = err;
                k++;
            }
        }
        arr.push(obj);
    }
   return arr;
}

希望,这可能对您有所帮助...

【讨论】:

    猜你喜欢
    • 2015-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-16
    • 1970-01-01
    • 1970-01-01
    • 2020-05-31
    相关资源
    最近更新 更多