如何短距离返回数组的一半



所以我回答这个问题,但我相信还有另一种方法Q是:

编写一个复制数组前半部分的函数half-。对于奇数个数组元素,中间的元素应该属于前半部分。half-([1,2,3,4](应返回[1,2]。和([1,2,3,4,5](返回[1,2,3]。

function halve(x) {
let len = x.length / 2 - 0.5
let xx = x[len]
if (x.length % 2 === 0) {
return x.slice(0, x.length / 2)
} else {
return x.slice(0, xx)
}
}
console.log(halve([1, 2, 3, 4]));

您可以使用内置的过滤功能

function halve(x){
return x.filter((i, idx) => idx < Math.floor(x.length / 2))
}
console.log( halve([1, 2, 3, 4]));

function halve(arr){
let len = arr.length / 2 + 0.5;
let floor1 = Math.floor(len)
return arr.slice(0, floor1)
}
function halve(arr){
let half = arr.length / 2 + 0.5;
return arr.slice(0, half)
}

您可以计算长度并使用.filter()来确定item是否是早期的item,因为.filter()的第二个参数是对您有利的索引。

function halve(x) {
let len = Math.ceil(x.length / 2);
return x.filter((item, index) => index < len);
}
console.log(halve([1, 2, 3, 4]));
console.log(halve([1, 2, 3, 4, 5]));

arr.slice(0, -arr.length / 2);

最新更新