我正在尝试从数组中删除最后一项,但它不起作用。我做了一些调试,发现 array.length-1 由于某种原因返回 NaN 。奇怪的是,array.length(没有-1)工作得很好。
lettersA.splice(lettersA.length-1);
有答案吗? (我正在使用 p5,以防有帮助)
最佳答案
使用Array#splice这种方式实际上是有效的,因为 start
参数是最后一项,并且由于您省略了 deleteCount
参数,它将删除 start
中的所有内容到数组的末尾 - 最后一项。
我认为你描述的NaN是由Array#slice的返回值引起的。 Slice 返回一个包含已删除元素的数组,您可能尝试将此数组用作数字。
示例:
var lettersA = ['angel', 'clown', 'mandarin', 'sturgeon'];
console.log("removed element: ", lettersA.splice(lettersA.length-1));
console.log("Array: ", lettersA);
如果您想获取删除的值,请使用 Array#pop 。 Array#pop 返回删除的元素,而不将其包装在数组中。
示例:
var lettersA = ['angel', 'clown', 'mandarin', 'sturgeon'];
console.log("Removed element :", lettersA.pop());
console.log("Array: ", lettersA);
关于javascript - array.length-1 返回 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45224998/