gpt4 book ai didi

javascript - 添加到数组时检查对象属性 - ES6

转载 作者:行者123 更新时间:2023-12-01 01:38:56 25 4
gpt4 key购买 nike

我有一个简单的算法问题,但找不到合适的解决方案。有一个数组,如果数组中任何对象的 recipe_id 属性值的 recipe_id 属性都不相同,我只想在数组中添加一个项目。

我想阻止添加任何具有相同属性值的项目。如果属性(property)的值(value)不同,那就可以了。因此,Recipe 数组中的所有对象都应具有不同的 recipe_id 值。我编写了这些代码,但似乎无法正常工作

这里是 JSBin 链接:link

   const Recipes =[
{recipe_id:4},
{recipe_id:5}
]

onClickedHandler = (recipe_id) => {

const favData = {
recipe_id: recipe_id,
}
if (Recipes.length > 0) {
for (let item in Recipes) {
if (Recipes[item].recipe_id !== recipe_id) {
console.log("added in the loop!")
Recipes.push(item)

} else {
console.log("it is already in the Recipe list!")
}
}
} else {
console.log("Recipes is empty")
Recipes.push({recipe_id:recipe_id})
}

}
onClickedHandler(9)
console.log(Recipes.length)

最佳答案

使用Array.some方法检查数组中是否存在 ID。您可能需要类似的东西:

const Recipes =[
{recipe_id:4},
{recipe_id:5}
];

function addRecipe(recipeId) {
if(!Recipes.some(item => item.recipe_id === recipeId)) {
Recipes.push({recipe_id:recipeId});
console.log("Not duplicate, inserted");
} else {
console.log("duplicate");
}
}

addRecipe(4);
addRecipe(6);
console.log(Recipes)

关于javascript - 添加到数组时检查对象属性 - ES6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52592986/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com