提问人:IHateCoding 提问时间:10/15/2023 更新时间:10/15/2023 访问量:19
尝试增加计数器(当对象的标记存在时)
Attempting to increase the counter, when the object's tag exist
问:
在下面的代码中,我想实现,每当标签值是新的时,都应该将其添加到数组中。如果标记不存在,则将添加包含标记和计数器的对象。那行得通。
不起作用的是,当标签已经存在时,我想增加计数器。无论出于何种原因,我都会因此得到一个 NaN。
食谱.js
/* Count apperance of every tag */
let tagCounter = [];
allRecipes.forEach(recipe => {
const tag = recipe.tag;
// Suche nach dem Tag in tagCounter
const existingTag = tagCounter.find(item => JSON.stringify(item.tag) === JSON.stringify(tag));
if (existingTag) {
// Das Tag wurde gefunden, erhöhe den Counter
existingTag.tag.counter += 1;
console.log(existingTag.tag.counter);
} else {
// Das Tag wurde nicht gefunden, füge es zu tagCounter hinzu
tagCounter.push({ tag, counter: 1 });
console.log("else");
console.log(existingTag?.tag?.counter);
}
});
console.log(tagCounter);
res.status(200).json({resultArrayUniqueTags, tagCounter})
安慰:
else
undefined
else
undefined
NaN
NaN
NaN
NaN
[ { tag: Breakfast, counter: 1 }, { tag: Lunch, counter: 1 } ]
我真的不明白为什么我不能增加计数器。使用控制台.log(typeof)验证数据类型时,它显示“数字”。
答:
1赞
Marko
10/15/2023
#1
你应该做而不是existingTag.counter += 1;
existingTag.tag.counter += 1;
此外,而不是console.log(existingTag.counter);
console.log(existingTag.tag.counter);
评论