返回0的Javascript数组长度
当我使用console.log打印数组长度时,它返回0。 但在控制台中,如果我写入返回0的Javascript数组长度,javascript,arrays,Javascript,Arrays,当我使用console.log打印数组长度时,它返回0。 但在控制台中,如果我写入txt.length,它将返回实际长度(在我的例子中为60)。由于这个原因,我无法遍历txt数组 var txt; function preload() { txt = loadStrings("DataProcess/outData.txt"); console.log(txt); console.log(txt.length); } 您需要在回调中获取长度。从文档中,函数接受3个参数 loadS
txt.length
,它将返回实际长度(在我的例子中为60)。由于这个原因,我无法遍历txt数组
var txt;
function preload() {
txt = loadStrings("DataProcess/outData.txt");
console.log(txt);
console.log(txt.length);
}
您需要在回调中获取长度。从文档中,函数接受3个参数
loadStrings(文件名,[callback],[errorCallback])
意思是你应该这样做:
var txt;
function preload() {
loadStrings("DataProcess/outData.txt", (res) => {
txt = res
console.log(txt.length);
})
}
我们可以看看
loadStrings
函数中发生了什么吗?当您将文件路径传递给该函数时,函数中似乎出现了一些异步操作。这里的loadStrings()
是什么?它是p5.js loadStrings函数@Zarif访问此链接以获取需要使用回调的字符串数组。回调:这是在函数成功执行后调用的函数。这个函数的第一个参数是strings数组。是的,“这个方法是异步的,这意味着在执行草图中的下一行之前它可能不会完成”。