向数组添加多个值

时间:2014-09-01 12:47:01

标签: javascript angularjs algorithm

我有这样的地图地形: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)之间的间隔一键。

我该怎么做?

1 个答案:

答案 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);