尝试简化 JavaScript 中的方程式
Trying to simplify an equation in JavaScript
本文关键字:方程式 JavaScript 更新时间:2023-09-26
我现在正在研究一个方程,我的大脑在捉弄我。我有几个变量:
var infiniteCount,
itemIndex,
itemCount = 6,
itemsToShow = 3,
itemsOffScreen = itemsToShow * 3;
这只是一个例子。我想出了一个方程式来计算项目索引,在反向循环项目的同时预置项目后计算项目索引(我希望这是有意义的)。我想出的等式是这样的:
itemIndex = (itemsOffscreen - (infiniteCount * 2)) + ((itemCount - infiniteCount) - 1);
它有效。如果我将 itemsToShow 更改为 6,索引仍然是正确的。要查看代码的实际操作,它如下所示:
// Set up infinite
var _setupInfinite = function (items, options) {
// Are we infinite
var i,
infiniteCount,
itemIndex,
itemCount = items.length,
itemsToShow = options.display.itemsToShow || itemCount,
itemsOffscreen = itemsToShow * 3,
isEven = items.length % 2 == 0;
// If we are scrollable
if (options.scrollable && options.infinite) {
// If we need to duplicate some items
if (itemsOffscreen > itemCount) {
// Set our counter to the amount we need to duplicate
infiniteCount = itemsToShow;
// Get our index (it won't change as we are always adding to the beginning of the array)
itemIndex = (itemsOffscreen - (infiniteCount * 2)) + ((itemCount - infiniteCount) - 1);
// Add items to the beginning of our array
for (i = itemsOffscreen; i > (itemsOffscreen - infiniteCount) ; i--) {
// Copy our item
var item = angular.copy(items[itemIndex]);
item.active = false;
// Add to the beginning of the array
items.unshift(item);
}
// Add items to the end of our array
for (i = 0; i < infiniteCount; i++) {
// Get our index
itemIndex = i + infiniteCount;
// Copy our item
var item = angular.copy(items[itemIndex]);
item.active = false;
// Add to the end of the array
items.push(item);
}
}
}
};
所以,问题在于那个表达。这对我来说似乎很复杂。我相信它可以简化。所以我想我只是想知道是否有人知道怎么做?
使用基本的算术简化:
(itemsOffscreen - (infiniteCount * 2)) + ((itemCount - infiniteCount) - 1)
=
itemsOffScreen - infiniteCount * 2 + itemCount - infiniteCount - 1
=
itemsOffScreen + itemCount - infiniteCount * 3 - 1
无论如何,您都应该使用最具可读性的版本。
该表达式简化为:
itemIndex = itemsOffscreen + itemCount - 3*infiniteCount - 1;
但原文可能更好地传达了表达的意图。
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 将函数的上下文应用于javascript变量
- 使用php或javascript从facebook相册URL中删除多余的部分
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 如何在JavaScript中将字符串转换为函数引用
- 模糊事件的Javascript测试
- Javascript更改图标
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 如何使用WCF服务和javascript表单post上传.doc文件
- javascript结合了数组和字典
- JQuery Mobile Javascript复杂方程式
- 用javascript编写方程式
- 用 JavaScript 编写数学方程式
- JavaScript / ThreeJS - 围绕中心Y轴(在3D空间中)在圆圈中移动对象的方程式
- 为什么要在 JavaScript 方程式前面加号与 toFixed
- 使用javascript中的数学方程式拆分变量
- 不理解这个javascript方程式
- 将数学方程式从PHP转换为Javascript (Jquery)
- 尝试简化 JavaScript 中的方程式