我有这样的地图地形:http://ast-ss.se/terrain/
所有广场的ID都在一个数组中:
for(var i = 1; i <= 160; i++)
{
squares.push(''+i);
}
当我点击一个正方形时,我想获取该正方形的索引位置,并放入另一个数组,这样可以正常工作:
angular.element('.click').click(function() {
var squareId = angular.element(this).attr('id'); //Rutans id
var squareIndex = squares.indexOf(squareId); //Rutans index som vi klickar på
var squareFirstIndex = squares.indexOf('1'); //Utgå ifrån den första
interval.push(squareIndex); //Add the index here
console.log(interval);
但是,此解决方案仅向阵列添加一个,每次单击一个。我想要的是添加正方形索引的整个间隔。
示例:当你在索引为2的正方形上,并点击索引为6的正方形时,我想在你做的时候存储数组中2到6(3,4,5)之间的间隔一键。
我该怎么做?
答案 0 :(得分:0)
您可以使用slice
方法获取一系列数组。这不会更改原始数组并返回副本。起始索引是包含的,结束索引是独占的。如果起始索引等于或大于结束索引,则结果数组为空。
所以:
var here = squares.indexOf(here_id);
var there = squares.indexOf(there_id);
var interval;
if (here < there) {
interval = squares.slice(here + 1, there);
} else {
interval = squares.slice(there + 1, here);
}
console.log(interval);