我正在研究一個方程式,而我的大腦正在玩弄技巧。 我有幾個變量:試圖簡化JavaScript中的公式
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);
}
}
}
};
所以,問題在於表達。對我來說這似乎太複雜了。 我相信它可以被簡化。 所以我想我只是想知道如果有人知道如何?
您的圓括號都不需要。 –