【问题标题】:Node create file and write selected object values to it节点创建文件并将选定的对象值写入其中
【发布时间】:2018-04-18 12:25:15
【问题描述】:

从通过我的函数传入的一组对象中获取值并将这些值写入 csv 文件的最佳方法是什么?

对象会这样通过:

 [ { objectTo:                        
     { employeeName: 'John',         
       employeeID: '234234', 
       DOB: '2333'},         
    employeeCurrent: true,
    employeePast: false},  
  { objectTo:                        
     { employeeName: 'Janet',         
       employeeID: '23423432', 
       DOB: '23333' },        
    employeeCurrent:true,
    employeePast: false} ]

我想在一个单元格上获取像 objects1.objectTo.employeeName, objects1.objectTo.DOB, objects1.employeeCurrent 这样的对象,但将每个 objectTo 写在它自己的行中。

我尝试使用 for 循环循环并设置它,然后将值传递给 writeFile,但这不起作用。最好的方法是什么?

我也尝试使用库下划线来给我值,但这也不起作用,只是写出整个对象:

var objectsToFile = function(objectsTotal){

        objectsTotal = _.values(objectsTotal, function(value) {
            return value.objectTo.employeeName;
        });

        objectsTotal = _.values(objectsTotal, function(value) {
            return value.employeeCurrent;
        });

        objectsTotal = _.values(objectsTotal, function(value) {
            return value.employeePast;
        });

        writeFile('objectsTotalet.csv', util.inspect(objectsTotal), function(err) {
            if (err) console.log(err);
        });
    };

CSV 中的预期输出(objects1.objectTo.employeeName、objects1.objectTo.DOB、objects1.employeeCurrent):

约翰 2333 真 珍妮特 23333 真

【问题讨论】:

  • 请以 CSV 格式提供预期输出
  • @Prasanna 编辑了上面的预期输出,谢谢

标签: javascript node.js underscore.js writefile


【解决方案1】:
let obj = [ { objectTo:                        
 { employeeName: 'John',         
   employeeID: '234234', 
   DOB: '2333'},         
employeeCurrent: true,
employeePast: false},  
{ objectTo:                        
 { employeeName: 'Janet',         
   employeeID: '23423432', 
   DOB: '23333' },        
employeeCurrent:true,
employeePast: false} ]

const csvString = obj.map(item => {
   return [item.objectTo.employeeName, item.objectTo.DOB, item.employeeCurrent]
}).join('\n')
console.log(csvString) 
// John,2333,true
// Janet,23333,true

如果您希望它们都在同一行,只需使用 ',' 而不是 '\n' 加入它们

获得字符串后,您可以使用fs 将它们写入csv 文件中

【讨论】:

    猜你喜欢
    • 2017-06-27
    • 1970-01-01
    • 1970-01-01
    • 2013-08-27
    • 2016-02-25
    • 2018-09-03
    • 2019-11-04
    • 1970-01-01
    • 2020-05-29
    相关资源
    最近更新 更多