Javascript 如何使用接头移除元件?

Javascript 如何使用接头移除元件?,javascript,Javascript,我不能通过这次考试 结果是未定义 我如何解决这个问题 代码: mocha.setup('bdd'); var expect = chai.expect; function removeEnd(arr, n) { /* write a program remove n element last of an array */ var removedItems= arr.splice(arr.length-n, n); } console.log(removeEnd([2, 3, 1,

我不能通过这次考试

结果是
未定义

我如何解决这个问题

代码:

mocha.setup('bdd');
var expect = chai.expect;

function removeEnd(arr, n) {
/*
    write a program remove n element last of an array
*/
var removedItems= arr.splice(arr.length-n, n);

}

console.log(removeEnd([2, 3, 1, 8, 9, 7], 3));

describe('removeEnd', () => {
  it('Remove n elements from the endof an given array', () => {
    expect(removeEnd([2, 3, 1, 8, 9, 7], 3)).to.eql([2, 3, 1]);
  });
});

mocha.run();

您需要使用
slice()
,而不是
splice()


您需要使用
slice()
,而不是
splice()


您的代码正确地删除了元素,但测试要求函数返回更改的数组(在我看来,这是一种奇怪的测试,因为
splice
mutates)。您的函数不包含
return
语句,因此它返回
undefined
。您的代码正确地删除了元素,但是测试要求函数返回更改的数组(在我看来,这是一种奇怪的测试,因为
splice
mutates)您的函数不包含
return
语句,因此它返回
undefined
.OMG。非常感谢您的支持。我已经做完了^^Hi@ ATSH -如果这个或任何答案已经解决了你的问题,请考虑通过点击复选标记接受它。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。没有义务这么做。天哪。非常感谢您的支持。我已经做完了^^Hi@ ATSH -如果这个或任何答案已经解决了你的问题,请考虑通过点击复选标记接受它。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。没有义务这样做。
function removeEnd(arr, n) {
    return arr.slice(0, arr.length - n);
}