如何以干净的方式从类列表数组中获取特定类?

Tao*_*Ben 5 javascript arrays class

我今天遇到了一个问题,我花了几个小时才知道它是什么,所以我有一个元素,这个元素有很多类:

<div id="myId" class="first second iwantthisone fourth"></div>
Run Code Online (Sandbox Code Playgroud)

我正在使用列表中的一个类将其作为其他函数中的参数传递,因此为了获取它,我正在这样做:

 const myClass = document.getElementById('myId').classList[2];
Run Code Online (Sandbox Code Playgroud)

为什么我选择2?因为当我对 classList 执行 console.log 时,它给了我一个数组(不是常规数组),结果如下:

['first', 'second', 'iwantthisone', 'fourth']
Run Code Online (Sandbox Code Playgroud)

所以我以为我已经完成了,我将我的工作部署到服务器上,我去那里测试一切是否正常,但事实并非如此,这就是我在这里的原因,所以问题是数组中项目的顺序更改为这 :

['second', 'iwantthisone','first', 'fourth']
Run Code Online (Sandbox Code Playgroud)

所以我的旧代码工作时间更长,我需要这样做:

const myClass = document.getElementById('myId').classList[1];
Run Code Online (Sandbox Code Playgroud)

这是不切实际的,我需要使用数组过滤器之类的方法来获取类,但似乎我无法使用它,因为 classList 不是我之前提到的常规方法。

有什么解决办法吗?

任何帮助将非常感激。

Sea*_*ean 5

只要使用 .array 从数组转换而来,就可以使用过滤器Array.from()。由于评论中的讨论,我怀疑这就是您正在寻找的内容,但仅从问题来看,这就是解决方案。

 const myClassList = document.getElementById('myId').classList;
 var classList = Array.from(myClassList).filter(word => word == "iwantthisone");
 console.log(classList);
 console.log(myClassList);
Run Code Online (Sandbox Code Playgroud)
<div id="myId" class="first second iwantthisone fourth"></div>
Run Code Online (Sandbox Code Playgroud)