javascript - 如果 div 子项没有相同的文本内容,则执行操作
问题描述
我正在尝试基于 JSON 文件对象为成分过滤器栏创建 DOM 元素。
问题是相同的成分可以出现在多个对象中,在这种情况下,它应该只创建一次 dom 元素,而不是每次出现成分时。
我已经尝试过childNode
, value
,innerHTML
但!===
无法找出解决方案。它要么根本不创建任何元素,要么所有元素都具有重复项。
有任何想法吗?
这是一个可以提供帮助的 codePen:https ://codepen.io/enukeron/pen/eYdgyzx
我还尝试使用一个数组来跟踪此 codepen 上看到的值: https ://codepen.io/enukeron/pen/ExgZoLa
JS:
const ingredientDropdown = document.getElementById('ingredientDropdown');
for(var j = 0; j < IngredientList.length; j++) {
if (ingredientDropdown.children.textContent !== IngredientList[j].ingredient) {
var ingredientSearchItems = document.createElement("p");
ingredientSearchItems.textContent = IngredientList[j].ingredient;
ingredientDropdown.appendChild(ingredientSearchItems);
}
}
JSON 文件具有以下格式:
{
"id": 49,
"name": "Tropical smoothie",
"servings": 4,
"ingredients": [
{
"ingredient": "Bananas",
"quantity": 2
},
{
"ingredient": "Kiwis",
"quantity": 3
},
{
"ingredient": "Mango",
"quantity": 1
},
{
"ingredient": "Pineapple",
"quantity": 4,
"unit":"slices"
},
{
"ingredient": "Honey",
"quantity": 2,
"unit": "tablespoons"
}
],
"time": 0,
"description":"Chop the fruit. Liquefy in the blender. Chill. Serve",
"appliance": "Blender",
"ustensils":["couteau", "verres"]
}, etc.....
解决方案
您可以创建如下函数:
function filterIngredients(recipes){
let return_arr = [];
recipes.forEach((recipe, index, array)=>{
let ingredients = recipe["ingredients"];
ingredients.forEach((ingredient, index, inner_array)=>{
if(!return_arr.includes(ingredient["ingredient"])){
return_arr.push(ingredient["ingredient"]);
}
});
});
return return_arr;
}
然后调用函数如下:
var ingredients = filterIngredients(recipes);
然后,您可以根据需要循环ingredients
并在 div 中显示它们(希望这是您首先想要的)。这是我实现它的笔的链接:
https ://codepen.io/AnirudhMS/pen/MWjJQgg?editors=1010
推荐阅读
- python - 使用 Python 从文件中读取值
- javascript - 如何使用 gulp 在每个构建中注入动态时间戳
- python - 在 Python 中编辑现有的 PDF 页面
- wordpress - 什么可能导致 WooCommerce 过滤器在最新的 Wordpress 版本中停止工作?
- botframework - 如何在 LUIS 中处理语音服务中的同音字?
- rest - 使用访问令牌克隆 Bitbucket 服务器存储库
- xml - 如何在 Postman 中使用 SOAP xml 向 Web 服务发送请求?
- android-studio - 如何在 Android Studio 中创建这个设计?
- python - 加密的 PDF 不会写入磁盘
- sql - 如何在 AnyLogic 类中选择内置 AnyLogic 数据库的数据?