多个值添加到一个数组
问题描述:
我有地图的地形是这样的: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)之间的间隔做一个点击。
我该怎么做?
答
你可以用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);
尝试使用_array.concate_ 'interval.concat([squareIndex])' – 2014-09-01 12:50:01
@NarekMamikonyan:不工作。 Concat用于将两个数组连接成一个? – user500468 2014-09-01 12:54:24
是的,可能是我明白错了吗?间隔已经是阵列是?你想添加或不添加其他值? – 2014-09-01 12:58:46