gpt4 book ai didi

javascript - JS if( item === ? ) 语句未触发。比较问题

转载 作者:搜寻专家 更新时间:2023-10-31 23:33:47 25 4
gpt4 key购买 nike

目的:用户输入信息。脚本开始检查 appendJSON.json 的内容是否有任何内容。返回 .json[] 的内容。

问题:比较 findNote === '' 时,if 语句不会触发 return []。如果 appendJSON.json 中有内容,则 else 语句会像预期的 return findnote 一样触发。

尝试:尝试将 findNote''nullundefiend 进行比较。同样的结果,返回的是什么都没有。

第一个代码块:接受输入然后检查 .json 是否有任何内容。log 以查看从 fetchNotes()

返回的内容
function addNote(argv) {
const newSubmission = argv;
const getLibrary = fetchNotes().toString();
log(getLibrary);
}

第二个代码块: fetchNotes():

function fetchNotes() {
const findNote = fs.readFileSync("./appendJSON.json");
if (findNote === "") {
return [];
} else {
return findNote;
}
}

我尝试稍微重构代码以删除 else 语句:

function fetchNotes() {
const findNote = fs.readFileSync("./appendJSON.json");
if (findNote === "") {
return [];
}
return findNote;
}

最佳答案

由于您没有提供 encoding 选项,readFileSync返回 Buffer ,不是字符串。 Buffer 永远不会是 ===''。你可能想要:

const findNote = fs.readFileSync('./appendJSON.json', 'utf8');

...但这假设内容是 UTF-8,而不是(比方说)Windows-1252 或 ISO-8859-1。确保您没有错误地假设,因为对于 ASCII 范围之外的字符,您会得到损坏的字符...


旁注:如果文件为空则返回一个空数组似乎很奇怪,但如果不是则返回一个 Buffer 或字符串。

关于javascript - JS if( item === ? ) 语句未触发。比较问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58249719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com