javascript - "Remove"评估为 true 时的测试条件

标签 javascript arrays conditional-statements

我正在对数组的成员做一些事情。

我需要测试该成员是否满足某些特定条件。

  • 无论条件是否满足,都会在成员上执行一些代码
  • 如果满足条件,还应该在成员上执行一些其他代码。

鉴于

  • 整个数组中该条件只会满足一次。

我已经尝试过使用纯 if 语句。像这样:

myArray.forEach((i) => {
  if (myCondition) {
    // Do something else.
  }
  // Do something.
});

但是,这并不理想,因为一旦满足此条件,我就不需要在数组的其他成员上测试此条件。

那我该怎么办

  • 避免不必要的条件测试
  • 无需引入另一次迭代
  • 以一种优雅的方式?

感谢您的耐心等待。

编辑:这是一个更精确的示例。

Object.entries(modes).forEach(([key, value]) => {
    console.log(key, value);

    if (!currentTheme.endsWith(key)) {
      // Do something else.
      }
    element.parentElement!.appendChild(element.cloneNode(true));
    const clonedElement = element.parentElement!.lastElementChild;
    clonedElement!.classList.remove(currentTheme);
    // Do something. (This code is not finished.)
  });

编辑:另一个类似的场景:

除了只有在满足条件的item上才会执行一段代码外,其他要求都是一样的。

最佳答案

您可以使用全局变量(此处:TYPE)来控制要使用的函数版本。

myArray=[2,6,7,8,10,4,0,12,14,32,40]; // the condition that occurs only once is (v % 2)
TYPE=0;
doStuff=function(v){return [
  // regular function version (TYPE=1)
  function(v){
    if (v%2) {TYPE=1; // from now on: use simplified function version!
      console.log('Hey, I found it and will no longer look for it!')}
    console.log('Regular work on value '+v, TYPE);
    return v*v},
  // simplified function version (TYPE=2)
  function(v){console.log('Simplified work on value '+v);
    return v*v}
  
  ][TYPE](v)};

myArray.forEach(doStuff)

关于javascript - "Remove"评估为 true 时的测试条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57691708/

相关文章:

arrays - 如何将单元格范围分配给数组

javascript - ng-repeat 构建时间表

javascript - Button.value 没有更改按钮的文本值

javascript - 从数组中删除最小值,但如果重复只删除一次

javascript - 将对应于另一个数组的数组的值求和

java - 在 Java 中如何使用对象引用作为 while 循环条件?

c - 工作 TicTacTo CheckWin 功能?

javascript - 尝试从网站上的 http ://multi-level-push-menu. make.rs 实现多级推送菜单

javascript - 正则表达式非捕获组问题

database - postgres 中的条件 INSERT INTO 语句