一直在看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()可以实现first和last,但是如何实现类似newB
的东西呢?
用简单的英语来说,“删除数组中的第一个 n
索引和 n
最后一个索引 (arr
) 并给我rest"应该是 newB
。
最佳答案
优普旺旺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)
}
关于javascript - 如何删除数组中的前几个和最后几个元素并保留其余部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48346486/