arrays - Vue 在两个 for 循环中调用 Api
问题描述
我有 2 个数组,一个有 2 个项目,一个有 5 个项目。问题是我试图将第一个数组中每个项目的描述与第二个数组中每个项目的描述进行比较。我正在通过一个自由文本相似度 api 进行比较。对于结果我喜欢有两个数组我创建的变量有 5 个项目(allSimilarity)。但是当我运行这段代码时,它会执行 2 个包含 10 个项目的数组。我想知道如何解决这个问题?
所以我为此编写了以下代码:
let allSimilarity=[]
const newIdeas=[{title:"Idea 1",description:"some text 1"},{title:"Idea 2",description:"some text 2"}]
const oldIdeas=[{title:"Idea 1",description:"some text 4"},{title:"Idea 2",description:"some text 3"},{title:"Idea 3",description:"some text 1"},{title:"Idea 4",description:"some text 2"},{title:"Idea 5",description:"some text 5"}]
newIdeas.forEach(item=>{
allSimilarity=[]
oldIdeas.forEach(async(oldIdea)=>{
let text1=item.description.split(" ").join("%20") + "%20";
let text2=oldIdea.description.split(" ").join("%20") + "%20";
//Here I am calling the api
this.compareIdeas({text1,text2}).then((resp)=>{
let similarity=resp
allSimilarity.push({similarity,oldIdea:oldIdea.title,newIdea:item.title})
})
})
console.log("This is all similarity",allSimilarity);
//Then I want to do some other method
})
解决方案
推荐阅读
- java - 将带有 JPanel 的鼠标侦听器添加到包含地球地图 (Java) 的 JFrame
- c# - 在c#中抓取时,有什么方法可以通过网页上的加载更多按钮?
- c - 检查 C 中“fgets”的输入
- java - 未收到 RabbitMQ 阻塞连接通知
- angular - 如何在 Angular 8 中取消订阅 httpclient 请求
- java - 使用卡夫卡火花:NoSuchMethodError:org.apache.kafka.clients.consumer.KafkaConsumer.subscribe(Ljava/util/Collection;)
- python - 在索引处每行插入多个值
- sql - SQL。是否可以在查询中进行“统计”?
- python - 为什么这些 Keras Sequential 模型和 Functional API 行为不同?
- keras - 如何预训练 CNN 以将 CNN 权重传递给 LSTM?