将数组保存为任何格式的输出文件

我需要帮助弄清楚如何保存阵列中的输出。我尝试将输出附加到csv,但这给了我一个空的csv或一个csv,并在数组中为每个项目附加了[object]字。

这是我的数组中的输出示例:

{
      date: '2014-01-25',firstBoxerRating: [Array],firstBoxerWeight: 235.5,judges: [Array],links: [Object],location: 'Golden Nugget Casino,Atlantic City',metadata: '<a href="/en/judge/401833">Joseph Pasquale</a> 75-77 | <a href="/en/judge/401066">Tony Perez</a> 78-74 | <a href="/en/judge/401734">Barbara Perez</a> 78-74\n' +
        '<br>',numberOfRounds: [Array],outcome: 'win',rating: 20,referee: [Object],result: [Array],secondBoxer: [Object],secondBoxerLast6: [Array],secondBoxerRating: [Array],secondBoxerRecord: [Object],secondBoxerWeight: 236.5,titles: []
    },{
      date: '2014-05-16',firstBoxerWeight: 240.75,location: '2300 Arena,Philadelphia',metadata: '<a href="/en/judge/402009">Pierre Benoist</a> 79-73 | <a href="/en/judge/401245">Lynne carter</a> 78-74 | <a href="/en/judge/677642">Eric Dali</a> 79-73\n' +
        '<br>',secondBoxerWeight: 238,{
      date: '2014-08-02',firstBoxerWeight: 236.5,location: 'Revel Resort,metadata: '  time: 1:48\n' +
        ' | <a href="/en/judge/401683">Lindsey Page</a>\n' +
        '<br>Williams down three times\n' +
        '<br>',secondBoxerWeight: 233,{
      date: '2014-09-19',firstBoxerWeight: 237,location: "Harrah's Philadelphia,Chester",metadata: '  time: 1:34\n' +
        ' | <span>referee:</span> <a href="/en/referee/401364">Benjy Esteves Jr</a><span> | </span><a href="/en/judge/401043">bernard Bruni</a> | <a href="/en/judge/400983">Larry Hazzard Jr</a> | <a href="/en/judge/402781">Alan Rubenstein</a>\n' +
        '<br>',secondBoxerWeight: 288,{
      date: '2014-11-14',firstBoxerWeight: 244,metadata: '  time: 2:28\n' +
        ' | <span>referee:</span> <a href="/en/referee/401364">Benjy Esteves Jr</a><span> | </span><a href="/en/judge/677642">Eric Dali</a> | <a href="/en/judge/400983">Larry Hazzard Jr</a> | <a href="/en/judge/671032">Mike Somma</a>\n' +
        '<br>',rating: 40,secondBoxerWeight: 209,

我假设此输出是JSON对象。

这是我用来产生此输出的代码:

async function writeData() {
    const csv = require('csv-parser')
    const results = [];
    fs.createReadStream('C:\\Users\\User\\Documents\\testingclean.csv')
        .pipe(csv())
        .on('data',(data)=> results.push(data))
        .on('end',async () => {
          const cookieJar = await getcookieJar();
          const promises = [];
          results.forEach((data) => {
            promises.push(boxrec.getPersonById(cookieJar,data.id));
          })
          const fighters = await Promise.all(promises); // Fighters is an array
          fighters.forEach((fighter) => {
              console.log(fighter.output);
          })
        });
    };
try {
    writeData();
} catch (error) {
    console.log("Error in writeData: " + error);
}
youchaozan 回答:将数组保存为任何格式的输出文件

类似的事情应该起作用。

const sections = document.querySelectorAll(".watch-me");

const options = {
    root:null,// its the viewport
    threshold: 0.7 //if 1 then 100% of item needs to be on the page

};
const observer = new IntersectionObserver((entries,observer)=>{

    entries.forEach(entry => {
        console.log("Called before if statements!");
        console.log(!entry.isIntersecting);
        if(!entry.isIntersecting){

            if(entry.target.classList.contains("header")){

                document.getElementById("nav-home").classList.remove("nav-active");


            }else if(entry.target.classList.contains("skills")){

                document.getElementById("nav-benefits").classList.remove("nav-active");

            }else if(entry.target.classList.contains("inventory")){

                document.getElementById("nav-inventory").classList.remove("nav-active");

            }else if(entry.target.classList.contains("featured")){

                document.getElementById("nav-featured").classList.remove("nav-active");

            }else if(entry.target.classList.contains("gallery")){

                document.getElementById("nav-gallery").classList.remove("nav-active");

            }else if(entry.target.classList.contains("services")){

                document.getElementById("nav-services").classList.remove("nav-active");

            }else if(entry.target.classList.contains("reviews")){

                document.getElementById("nav-reviews").classList.remove("nav-active");

            }
            console.log(entry.target);
            return;

        }else if(entry.target.classList.contains("header")){
            // document.querySelectorAll('.nav-active').classList.remove("nav-active");
            document.getElementById("nav-home").classList.add("nav-active");
            // entry.target.classList.add("nav-active");

        }else if(entry.target.classList.contains("skills")){

            document.getElementById("nav-benefits").classList.add("nav-active");

        }else if(entry.target.classList.contains("inventory")){

            document.getElementById("nav-inventory").classList.add("nav-active");

        }else if(entry.target.classList.contains("featured")){

            document.getElementById("nav-featured").classList.add("nav-active");

        }else if(entry.target.classList.contains("gallery")){

            document.getElementById("nav-gallery").classList.add("nav-active");

        }else if(entry.target.classList.contains("services")){

            document.getElementById("nav-services").classList.add("nav-active");

        }else if(entry.target.classList.contains("reviews")){

            document.getElementById("nav-reviews").classList.add("nav-active");

        }


    });
    },options); 
sections.forEach(section => {
    observer.observe(section);
});

未测试代码。另外,fighters.forEach((fighter) => { let data = ''; for (const key in fighter.output) { if (Array.isArray(fighter.output[key])) { data += JSON.stringify(fighter.output[key]) + ','; } else if (typeof fighter.output[key] === 'object') { data += JSON.stringify(fighter.output[key]) + ','; } else { data += fighter.output[key] + ','; } } data = data.replace(/(^,)|(,$)/g,""); // Remove trailing comma data += '\n'; // Add new line fs.appendFile('data.csv',data,(err) => { if (err) throw err; }); }); 文件可能需要一些时间来创建,具体取决于数据大小。 data.csv外观将甚至在nodejs完成写入文件之前完成。因此,程序可能会退出,但在后台编写可能会继续进行直到完成。您必须维护forEach执行部分。如何处理它不在此问题的范围内。

本文链接:https://www.f2er.com/3157308.html

大家都在问