对数组的每个元素执行数组中指定的某事

for each element of array do sth specified in an array

我目前想知道以下问题: 我有两个数组:

const highlightClasses = ['highlightPlace', 'highlightOrg', 'highlightName'];
const elements =['place', 'org', 'name']

和一个神奇地切换 classes:

的“toggleClass-function”
const toggle = (element, className) => $(element).toggleClass(className);

elements 包含我想要从 highlightClasses 切换 class 的所有元素。

我目前的解决方案是这样的:

const highlightEntities=() => {
    toggle($('place'), 'highlightedPlace');
    toggle($('org'), 'highlightedOrg');
    toggle($('name'), 'highligtedName');
}

我在想某件事

for each (element in elements){
do magic 
}

我想要切换 elements[0] 和 highlightClasses[0] 等等。 (在这种情况下) 另外,就这三个元素和classes,我不知道是否真的值得花时间,但万一我不得不扩展它,我想知道一个更优雅的方式

有这样的方法吗?

尝试这样的事情:

for (let i = 0; i < elements.length; i++) {
  toggle($(elements[i]), highlightClasses[i]);
}

另外我会推荐这样的数据结构:

const elements = [
  { name: 'place', highlightClass: 'highlightPlace' },
  { name: 'org', highlightClass: 'highlightOrg' },
  { name: 'name', highlightClass: 'highlightName' }
]

更简单的 for-in 循环相应地是:

for (const element in elements) {
  toggle($(element.name), element.highlightClass);
}

这样当您的数组长度不同时,您就不会 运行 出错。