如何删除数组中的前几个和最后几个元素并保留其余元素

时间:2018-01-19 17:28:23

标签: javascript arrays

一直在看arr.splice(),但这似乎不是我追求的。基本上,我需要“拼接”一个范围,即:

let arr = [1,2,3,4,5,6,7,8,9,10];

我需要使用以下任一项返回一个新数组:

const newA = [1,2,3]
const newB = [4,5,6]
const newC = [7,8,9]

当然arr.splice()可以实现第一个和最后一个但是如何实现像newB这样的东西?

用简单的英语,“删除数组中的第一个n索引以及n最后一个索引(arr)并给我剩下的”应该是{{1} }。

3 个答案:

答案 0 :(得分:3)

arr.splice(0, 3);
arr.splice(-4); // or arr.splice(6)
console.log(arr);

答案 1 :(得分:3)

Yopu希望slice不要拼接(如果你想在一次通话中这样做)。

console.log([1,2,3,4,5,6,7,8,9,10].slice(3, 6));

此外,slice返回一个新数组,splice只是更改原始数组。

澄清任何歧义......

如果要删除最后n项和第一个y项,可以考虑定义此功能..

var a = [1,2,3,4,5,6,7,8,9,10];
const newA = arrayTrim(a, 0, 7);
const newB = arrayTrim(a, 3, 4)
const newC = arrayTrim(a, 6, 1);

console.log(newA, newB, newC);

function arrayTrim(array, first=0, last=0){
  last = !last ? undefined : -last;
  return array.slice(first, last)
}

如果你想从n索引开始并从数组中获取y项,你可以使用它。

var a = [1,2,3,4,5,6,7,8,9,10];
const newA = arrayTrim(a, 0, 3);
const newB = arrayTrim(a, 3, 3)
const newC = arrayTrim(a, 6, 3)

console.log(newA, newB, newC);

function arrayTrim(array, first, length){
  return array.slice(first, length+first)
}

答案 2 :(得分:1)

您想为machine.config

使用两个参数
arr.slice