Javascript DOMStringMap值到数组?

Javascript DOMStringMap值到数组?,javascript,arrays,dataset,Javascript,Arrays,Dataset,如何从数据集创建值数组?我到处寻找答案,但什么也找不到 我有6个img元素和数据集(有关于图片内容的信息),我用所有img元素的数据集创建了变量,如: for (let i = 0; i < allImages.length; i++) { let allDataset1 = []; allDataset1.push(allImages[i].dataset); console.log(allDataset1); for(设i=0;i

如何从数据集创建值数组?我到处寻找答案,但什么也找不到

我有6个img元素和数据集(有关于图片内容的信息),我用所有img元素的数据集创建了变量,如:

for (let i = 0; i < allImages.length; i++) {
        let allDataset1 = [];
        allDataset1.push(allImages[i].dataset);
        console.log(allDataset1);
for(设i=0;i

Console向我显示带有dataset值的DOMStringMap,现在我需要创建一个该值的数组,或者我不需要..我必须将用户输入文本与dataset的每个值进行比较。

您可以使用allDataset1数组上的find方法来比较用户输入文本值,并检查用户输入是否与all中的任何值匹配数据集1数组

数组上的find()方法返回所提供数组中满足所提供测试函数的第一个元素的值

假设userInput变量中存储了userInput值,那么您只需执行以下操作

const datasetEnteredByUser = allDataset1.find((val) => val === userInput). 
如果allDataset1中没有与userInput匹配的值,则datasetEnteredByUser将是未定义的

根据下面评论中的讨论,allDataset1是一个img元素数组,每个img元素的dataset属性中都有一个逗号分隔的字符串

因此,我认为在将allDataset1与用户输入进行比较之前,需要按照以下方式创建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方法将字符串中的每个元素与用户输入进行比较。

好的,我理解,但我的allDataset1不是值数组。我需要获取数据集的值并将其推入数组,然后将值与用户输入进行比较。您可以提供一个示例,说明allDataset1最终的外观。我正在给人的印象是它是一个字符串数组。但是如果它比这更复杂,你能提供像console.log(allDataset1)这样的输出吗?我有6个带有数据集的图像,每个img都有不同的数据集(第一个img数据集(自行车,人),第二个img数据集(夜晚,汽车,人)等等)我想将所有这些数据集字符串与用户输入进行比较。因此,我需要创建数组,获取数据集的值并将其推入该数组以创建for循环,并将输入与这些字符串进行比较。Console.log(allDataset1)向我显示:[DOMStringMap]0:DOMStringMap{tag:“Basketball,sport,people”}长度:1 proto:array(0)等等。allDataset1应该看起来像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(','))
})