【发布时间】:2022-11-17 22:53:14
【问题描述】:
我想遍历一组单词,查找定义并在未找到定义时删除该单词。
我的代码如下所示;
var words = ["word1", "word2", "word3",]
function Meaning(words){
const getMeaning = async () => {
const response = await fetch(`https://api.dictionaryapi.dev/api/v2/entries/en/${words}`)
const myJson = await response.json()
for(i = 0; i < words.length; ++i) {
if(!response[i]){
myJson.splice(i,1)
console.log(myJson)
}
}}
这并没有真正做任何事情。我哪里错了?
编辑以添加上下文
也试过这样;
for(i = 0; i < words.length; ++i)
fetch(`https://api.dictionaryapi.dev/api/v2/entries/en/${words[i]}`).then((response) => {
if (response === 404) {
let response = words
words[i].splice(i,1)
console.log(response)
}
throw new Error('Something went wrong');
})
.then((responseJson) => {
let response = words
response[i].splice(i,1)
})
.catch((error) => {
console.log(error)
});
我可以在找不到定义时打印出 404 错误,但我无法将其从 words 数组中删除
【问题讨论】:
-
splice 将返回一个您不使用的数组。所以 myJson 不会改变。将 myJson.splice(i,1) 更改为 myJson = myJson.splice(i,1)
-
非常感谢阿里抽出时间来回答,遗憾的是还是一样。
-
@kip,您需要做一些修改。检查此示例 codepen.io/Maniraj_Murugan/pen/qBKPLvV 。但是您的问题还不清楚,您能否详细说明您要达到的目标?
-
感谢 Maniraj 花时间回答。基本上我想遍历单词列表,获取含义,如果单词没有含义,我想将其从列表中删除。
-
@AliBahrami 那是不正确的。
splice改变数组,没有必要把它赋值回去
标签: javascript