我有一个对象数组,我想使用ng-repeat显示每行2.
我想出的解决方案如下:
<div ng-repeat="element in elements">
<div layout="row" ng-if="$even">
<div flex>
<span>{{ elements[$index].name }}</span>
</div>
<div flex>
<span>{{ elements[$index+1].name }}</span>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
问题在于,我无法以| filter正确的方式过滤内容,因为它会显示过滤后的元素和以下内容.
解决问题的最佳方法是什么?
抱歉我的英语不好,这不是我的第一语言.先感谢您.
我正在编写一个算法,其中效率非常重要。有时我也想通过调用一些“回调”函数来跟踪算法行为。假设我的代码如下所示:
public float myAlgorithm(AlgorithmTracker tracker) {
while (something) { // millions of iterations
doStuff();
if (tracker != null) tracker.incrementIterationCount(); // <--- How to run the if only once?
doOtherStaff();
}
}
Run Code Online (Sandbox Code Playgroud)
如何防止执行 if 语句一百万次?编译器是否看到tracker从未重新分配?如果它在第一次检查时为空,它将始终为空。如果不是,则永远不会。
理想情况下,我想告诉编译器以这种方式构建我的代码,以便如果tracker为 null(在运行时),它将以与以下相同的性能运行
while (something) { // millions of iterations
doStuff();
doOtherStaff();
}
Run Code Online (Sandbox Code Playgroud)
我想到了两个解决方案:
我可以编写两个版本的 myAlgorithm,一个有调用,一个没有调用,但这会导致大量代码重复。
我可以将 AlgorithmTracker 提取到一个界面并创建一个带有空函数的假空跟踪器。不过,我不知道编译器是否会优化调用。