Javascript 正在节点js中登录空阵列

Javascript 正在节点js中登录空阵列,javascript,node.js,arrays,async-await,axios,Javascript,Node.js,Arrays,Async Await,Axios,流量: 用户在index.html中提交一个queryValue 基于queryValue,进行了三次API调用(使用名为ytAxiosGetFunc的函数) 返回的值放在三个数组中:ytQueryAppJs、ytCoverAppJs和ytLiveAppJs ytCoverAppJs和ytLiveAppJs包含冗余值。使用名为compareAndRemove的函数删除这些文件 分配了两个新数组,分别包含每个数组的唯一值。它们是ytCoverUniqueAppJs和ytLiveUniqueApp

流量:

  • 用户在index.html中提交一个
    queryValue
  • 基于
    queryValue
    ,进行了三次API调用(使用名为
    ytAxiosGetFunc
    的函数)
  • 返回的值放在三个数组中:
    ytQueryAppJs
    ytCoverAppJs
    ytLiveAppJs
  • ytCoverAppJs
    ytLiveAppJs
    包含冗余值。使用名为
    compareAndRemove
    的函数删除这些文件
  • 分配了两个新数组,分别包含每个数组的唯一值。它们是
    ytCoverUniqueAppJs
    ytLiveUniqueAppJs
  • 因此,根据查询,控制台中总共有五个阵列被登录

预期的控制台日志:

所有数组都已填充

当前控制台日志:

除了
ytCoverUniqueAppJs
ytLiveUniqueAppJs
之外,所有数组都已填充。这些是空的


来自“app.js”的源代码:

//https://stackoverflow.com/a/14930567/14597561
函数compareAndRemove(从此中移除,比较此){
return(removeFromThis=removeFromThis.filter(val=>!compareToThis.includes(val));
}
//声明函数“ytAxiosGetFunc”的变量
让apiKey=“”;
设urlOfYtAxiosGetFunc=“”;
让我们回答=”;
让ytExtractedResult=[];
//此函数用于获取数据、解析数据、在数组中分配所需的值。
异步函数ytAxiosGetFunc(queryOfYtAxiosGetFunc,maxResultsOfYtAxiosGetFunc){
apiKey=“AI…5U”
urlOfYtAxiosGetFunc=”https://www.googleapis.com/youtube/v3/search?key=“+apiKey+”&part=snippet&order=relevance&type=video”;
试一试{
ytResponse=等待axios({
url:urlOfYtAxiosGetFunc,
方法:“获取”,
参数:{
q:queryOfYtAxiosGetFunc,
maxResults:maxResultsOfYtAxiosGetFunc
}
})
让ytResult=ytResponse.data;
对于(i=0;i<(ytResult.items).长度;i++){
ytExtractedResult[i]=YTSult.items[i].id.videoId;
//console.log(ytExtractedResult);
}
返回(ytExtractedResult);
ytExtractedResult.length=0;
ytResponse.length=0;
}捕获(e){
控制台日志(e);
}
}
app.post(“/”,异步函数(req,res){
//访问index.html中提交的queryValue用户。
query=req.body.queryValue;
//对与用户查询相关的顶级结果进行筛选,并将其放入数组中。
ytQueryAppJs=等待ytAxiosGetFunc(查询,4);
log(“ytQueryAppJs”);
console.log(ytQueryAppJs);
//获取与用户查询相关的“封面”歌曲并将其放入数组中。
if(query.includes(“cover”)==true){
ytCoverAppJs=wait ytAxiosGetFunc(查询,8);
log(“ytcoverage ppjs”);
console.log(ytcoverage-ppjs);
//删除冗余值。
ytCoverUniqueAppJs=比较数据移动(YTCOVERPAPPJS,ytQueryAppJs);
log(“ytCoverUniqueAppJs:”);
console.log(ytCoverUniqueAppJs);
}else if(query.includes(“live”)==true){
ytCoverAppJs=wait ytAxiosGetFunc(query.replace(“live”,“cover”),8);
log(“ytcoverage ppjs”);
console.log(ytcoverage-ppjs);
//删除冗余值。
ytCoverUniqueAppJs=比较数据移动(YTCOVERPAPPJS,ytQueryAppJs);
log(“ytCoverUniqueAppJs:”);
console.log(ytCoverUniqueAppJs);
}否则{
ytCoverAppJs=等待ytAxiosGetFunc(查询+“覆盖”,8);
log(“ytcoverage ppjs”);
console.log(ytcoverage-ppjs);
//删除冗余值。
ytCoverUniqueAppJs=比较数据移动(YTCOVERPAPPJS,ytQueryAppJs);
log(“ytCoverUniqueAppJs:”);
console.log(ytCoverUniqueAppJs);
}
//获取与用户查询相关的“实时性能”,并将其放入数组中。
if(query.includes(“live”)==true){
ytLiveAppJs=wait ytAxiosGetFunc(查询,8);
log(“ytLiveAppJs”);
log(ytLiveAppJs);
//删除冗余值。
ytLiveUniqueAppJs=compareAndRemove(ytLiveAppJs,ytQueryAppJs.concat(ytCoverUniqueAppJs));
log(“ytLiveUniqueAppJs:”);
console.log(ytLiveUniqueAppJs);
}else if(query.includes(“cover”)==true){
ytLiveAppJs=wait ytAxiosGetFunc(query.replace(“cover”,“live”),8);
log(“ytLiveAppJs”);
log(ytLiveAppJs);
//删除冗余值。
ytLiveUniqueAppJs=compareAndRemove(ytLiveAppJs,ytQueryAppJs.concat(ytCoverUniqueAppJs));
log(“ytLiveUniqueAppJs:”);
console.log(ytLiveUniqueAppJs);
}否则{
ytLiveAppJs=wait ytAxiosGetFunc(查询+“实时”,8);
log(“ytLiveAppJs”);
log(ytLiveAppJs);
//删除冗余值。
ytLiveUniqueAppJs=compareAndRemove(ytLiveAppJs,ytQueryAppJs.concat(ytCoverUniqueAppJs));
log(“ytLiveUniqueAppJs:”);
console.log(ytLiveUniqueAppJs);
}
//清空所有数组。
ytQueryAppJs.length=0;
ytcoverage ppjs.length=0;
ytCoverUniqueAppJs.length=0;
ytLiveAppJs.length=0;
ytLiveUniqueAppJs.length=0;
});

(我是初学者。请为即将到来的观众引导并建议一个标题来对这个问题进行分类。)

我的朋友建议我将
ytResponse
ytExtractedResult
本地化。所以我在
ytAxiosGetFunc
中声明了它们

注意注释的代码。以下是所需的更改:

//为函数“ytAxiosGetFunc”声明变量
让apiKey=“”;
设urlOfYtAxiosGetFunc=“”;
//让我们回答=”;
//让ytExtractedResult=[];
//此函数用于获取数据、解析数据、在数组中分配所需的值。
异步函数ytAxiosGetFunc(queryOfYtAxiosGetFunc,maxResultsOfYtAxiosGetFunc){
让ytExtractedResult=[];
apiKey=“A…U”
urlOfYtAxiosGetFunc=”https://www.googleapis.com/youtube/v3/search?key=“+apiKey+”&part=代码段和顺序=相关性和类型