Javascript 输出给我[对象]
我在寻找我的问题的答案——我的输出是错误的,我不知道到底什么是错误的。也许有些代码丢失了,我真的不知道——我还在学习 我使用node.js v10.15.3,我只想将console.log输出显示为txt文件 我导出到txt文件的输出应如下所示:Javascript 输出给我[对象],javascript,node.js,Javascript,Node.js,我在寻找我的问题的答案——我的输出是错误的,我不知道到底什么是错误的。也许有些代码丢失了,我真的不知道——我还在学习 我使用node.js v10.15.3,我只想将console.log输出显示为txt文件 我导出到txt文件的输出应如下所示: [ Card { suit: 'Clubs', value: 3 }, Card { suit: 'Clubs', value: 8 }, Card { suit: 'Diamonds', value: 9 }, Card { sui
[ Card { suit: 'Clubs', value: 3 },
Card { suit: 'Clubs', value: 8 },
Card { suit: 'Diamonds', value: 9 },
Card { suit: 'Hearts', value: 5 },
Card { suit: 'Clubs', value: 10 } ]
但在收到的文本文件中,我得到
[object Object],[object Object],[object Object],[object Object],[object Object]
下面是我的代码:
console.log = function(msg) {
fs.appendFile("OutputTask2and3.txt", msg, function(err) {
if(err) {
throw err;
}
});
}
class Card {
constructor(suit, value) {
this.suit = suit;
this.value = value;
}
}
class Deck {
constructor() {
this.deck = [];
}
createDeck(suits, values) {
for (let suit of suits) {
for (let value of values) {
this.deck.push(new Card(suit, value));
}
}
return this.deck;
}
shuffle() {
let counter = this.deck.length,
temp,
i;
while (counter) {
i = Math.floor(Math.random() * counter--);
temp = this.deck[counter];
this.deck[counter] = this.deck[i];
this.deck[i] = temp;
}
return this.deck;
}
deal() {
let hand = [];
while (hand.length < 5) {
hand.push(this.deck.pop());
}
return hand;
}
}
let suits = ["Spades", "Hearts", "Diamonds", "Clubs"];
let values = ["Ace", "Jack", "Queen", "King", 2, 3, 4, 5, 6, 7, 8, 9, 10];
let deck = new Deck();
deck.createDeck(suits, values);
deck.shuffle();
console.log(deck.deal())
使用JSON.parse
console.log(JSON.parse(deck.deal()));
我认为你的问题是
fs.appendFile("OutputTask2and3.txt", msg, function(err) {
if(err) {
throw err;
}
});
正在将msg强制为字符串
我会试试看
fs.appendFile("OutputTask2and3.txt", JSON.stringify(msg, null, '\t'), function(err) {
if(err) {
throw err;
}
});
值得注意的是,你不会得到这个类,只是保存了一个普通的对象,但是当你需要从文件中读取并重新解析时,你可以再次应用原型。@miro很高兴这对你有所帮助。如果它回答了你的问题,请把它标记为正确的。