javascript - DOMStringMap 值到数组?
问题描述
如何从数据集中创建值数组?我到处寻找答案,我找不到任何东西。
我有 6 个带有数据集的 HTML 元素(有关于图片内容的信息),我使用所有 img 元素的数据集创建了变量,例如:
for (let i = 0; i < allImages.length; i++) {
let allDataset1 = [];
allDataset1.push(allImages[i].dataset);
console.log(allDataset1);
控制台向我显示了带有数据集值的 DOMStringMap,现在我需要创建一个包含这些值的数组,或者我不需要。我必须将用户输入文本与数据集的每个值进行比较。
解决方案
您可以使用 allDataset1 数组上的 find 方法来比较用户输入的文本值,并检查用户输入是否与 allDataset1 数组中的任何值匹配。
数组上的 find() 方法返回提供的数组中满足提供的测试功能的第一个元素的值
假设 userInput 变量中存储了 userInput 值,您只需执行以下操作。
const datasetEnteredByUser = allDataset1.find((val) => val === userInput).
如果 allDataset1 中没有任何值与 userInput 匹配,则 datasetEnteredByUser 将未定义。
根据下面评论中的讨论, allDataset1 是一个 img 元素数组,并且每个 img 元素的数据集属性中都有一个逗号分隔的字符串。
因此,我认为您需要先以下列方式创建 allDataset1,然后再将其与用户输入进行比较。
let allDataset1 = []
[...allImages].forEach(img => { // Converting the allImages array of Dom elements into a Javascript array to iterate on.
allDataset1 = allDataset1.concat(img.getAttribute('dataset').split(','))
})
然后,您可以使用 allDataset1 上的 find 方法将字符串中的每个元素与用户输入进行比较。
推荐阅读
- javascript - 多次调用 Office.js 并等待完成所有
- python - Heroku 上的 django 网站部署上没有这样的表
- ios - 在 react-native 中使用 Siri 意图
- python - 为什么此代码不适用于特定类型的数据?
- c++ - 为什么虚拟赋值运算符是“一罐蠕虫”?
- r - 有没有办法解码 Shopify 订单完整 URL 中的十六进制字符串?
- android-activity - 使用 Intent.ActionCreateDocument 缺少文档提供程序
- networking - Webrtc点对点呼叫在公共网络中不起作用
- mysql - 按执行选择和分组是如何工作的。列存在于 GROUP BY 而不是 SELECT
- algorithm - Haskell 置换函数