【发布时间】:2019-07-30 09:33:07
【问题描述】:
我需要匹配 2 个数组中的任何项目,然后返回该匹配项的值。例如:
let arr1 = [ 'grid-view' ,'list-view' ];
let arr2 = [ 'test', 'list-view' ];
从上面我会得到list-view 返回。
这是我目前所拥有的,但它返回 true,而我需要实际匹配。尽量避免做可怕的大循环和过多的代码。
let switches = document.querySelectorAll('[data-switch]');
let switchesClasses = [].slice.call(switches).map(x => x.dataset.switchClass);
const found = Array.from(document.querySelector('.test').classList).some(r => switchesClasses.includes(r));
console.log(found);
<div class="showroom-layout-toggle" data-switch-group="showroom_layout" data-switch-target=".test" data-switch-cookie>
<button class="grid-toggle" data-switch data-switch-class="grid-view">Grid</button>
<button class="grid-toggle" data-switch data-switch-class="list-view">List</button>
</div>
<div class="test list-view">Hello</div>
【问题讨论】:
-
这个已经回答了 答案链接:stackoverflow.com/a/46957719/11828927
标签: javascript