这是一个相对简单的问题,尽管这对我来说很难确定。
我有两个填充页面的数组。一个有页面,一个有页面和广告。
pages = ['page1','page2','page3','page4','page5','page6','page7','page8','page9']
pages_w_ads = ['page1','page2', 'ad','page3','page4','ad','page5','page6','ad','page7','page8','ad','page9']
我需要根据页面数组中的位置获取pages_w_ads
数组中网页的数组位置,不包括广告。广告会显示pages_w_ads
数组中的每2个项目。
示例:pages[8] === pages_w_ads[11];
如何在pages_w_ads数组中找到我的页面的位置?
这是我当前实现的基本js小提琴: http://jsfiddle.net/myyellowshoe/qsL6uyw2/2/
感谢您的任何智慧。
答案 0 :(得分:1)
示例:
pages[8] === pages_w_ads[11];
那不是真的。数组的第一个元素位于键0
中,所以
pages[8] === pages_w_ads[12]; // "page9"
因此,平等是
pages[i] === pages_w_ads[Math.floor(i*1.5)]; // "page" + (i+1)
答案 1 :(得分:0)
这有两个问题:一个是处理广告页面,另一个是页面实际上并不像Javascript数组那样基于0。
var getPage = function (n) {
return pages_w_ads[(n - 1) + Math.floor(n/3)];
}
console.log(getPage(1)); //Returns page1
console.log(getPage(2)); //Returns page2
console.log(getPage(3)); //Returns page3
console.log(getPage(4)); //Returns page4
答案 2 :(得分:0)
只需使用带有id的indexOf()数组函数,你可以使用common" page"名称
Ex: return pages_w_ads[pages_w_ads.indexOf("page"+pid)]