gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 23:03:34 24 4
gpt4 key购买 nike

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

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

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

鉴于

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

我已经尝试过使用纯 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com