Javascript 获取除第一个和最后一个之外的所有数组元素

Javascript 获取除第一个和最后一个之外的所有数组元素,javascript,jquery,arrays,google-maps,Javascript,Jquery,Arrays,Google Maps,我有一个位置阵列,我需要能够访问起点,中点和目的地分别 我知道我的原点始终是第一个元素,目标始终是最后一个元素,但我不知道如何动态访问所有的中点?要实现这一点,可以使用shift()和pop()分别获取数组的第一个和最后一个元素。在这些操作之后,数组中剩下的将是您的“中间点”。试试这个: var中间点=['start','A','B','C','end']; var origin=middlePoints.shift(); var destination=middlePoints.pop();

我有一个位置阵列,我需要能够访问起点,中点和目的地分别


我知道我的原点始终是第一个元素,目标始终是最后一个元素,但我不知道如何动态访问所有的中点?

要实现这一点,可以使用
shift()
pop()
分别获取数组的第一个和最后一个元素。在这些操作之后,数组中剩下的将是您的“中间点”。试试这个:

var中间点=['start','A','B','C','end'];
var origin=middlePoints.shift();
var destination=middlePoints.pop();
控制台日志(源);
控制台日志(中间点);

console.log(目的地)由于没有数据,我将使用基本数组来显示。同样,通过这种方法,您将保留原始数组

var-arr=[1,2,3,4,5,6,7];
var middle=arr.slice(1,-1);
控制台.log(中间)

var allPoints=[0,1,2,3,4,5],
中点=[]
/*从索引1而不是0开始迭代,因为我们希望跳过第一个点,并在数组中的最后一项之前停止迭代*/
对于(变量i=1;i<(allPoints.length-1);i++){
中点推(所有点[i]);
}

控制台日志(中点)一切都简单得多,请使用筛选方法

let Arr = ['first', 'A', 'B', 'C', 'last'];
NewArr = Arr.filter((item,i) => i !== 0 && i !== Arr.length-1);
console.log(NewArr)

虽然这会产生正确的输出,但我认为这种方式过于繁琐和明确,因为它告诉JS每一个必须执行的小步骤。对此任务使用显式循环对我来说是一种反模式。不要小题大做。JS内置的
midPoints=allPoints.slice(1,allPoints.length-1)
也有同样的功能,更具可读性,更清楚您的意图,甚至更快。是否需要否决投票?这是解决OPs问题的有效方法。你让它听起来像一个基本的for循环会破坏性能。我同意,是的,使用一些内置的js数组函数会更有意义,但这是一个非常简单的解决方案,而且它可以工作。否决票反映了我的观点,即这不是解决这个问题的好办法,即使它产生了正确的输出。这与性能无关,而是这段代码与使用内置方法相比没有任何优势;甚至比我经常听到的“但我的显式代码更快”还要少。我的观点是,这段代码与simple完全相反。你在微观管理。将项目从一个数组移动到另一个数组,并使手头的实际任务复杂化/模糊化:给我
allpoints
的部分,从第一个项目之后开始,在最后一个项目之前结束。可以通过替换行var middle=arr.slice(1,arr.length-1)来进一步改进;中间变量=arr.slice(1,-1);shift和pop影响当前数组;有没有办法让中间点改变当前阵列?。喜欢切片,但切片不影响它(?)