我的当前数组:abc = ['a', 'b', 'c', 'd'];我理解.pop() remove并返回数组的最后一项,因此:abc.pop(); = 'd'但是,我想删除最后一项,并返回数组。因此它将返回:['a', 'b', 'c'];有JavaScript函数可以实现吗?
abc = ['a', 'b', 'c', 'd'];
.pop()
abc.pop(); = 'd'
['a', 'b', 'c'];
nqwrtyyt1#
pop()函数也从数组中删除最后一个元素,所以这就是你想要的(Demo on JSFiddle):
pop()
var abc = ['a', 'b', 'c', 'd']; abc.pop() alert(abc); // a, b, c
gajydyqb2#
这样做
abc = abc.splice(0, abc.length-1)
编辑:已经指出,这实际上返回了一个新数组(尽管具有相同的变量名)。如果你想返回相同的数组,你就得自己创建函数
function popper(arr) { arr.pop(); return arr; }
at0kjp5o3#
在表达式中,使用逗号运算符。(文件:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comma_Operator// thx @零)
(abc.length--, abc) // expl : (abc.length--, abc).sort();
或者在函数中,最方便的是在Array prototype上设置它:
Array.prototype.removeLast = function () { this.length--; return this; }
呼叫
var abc = ['you', 'and', 'me']; abc.removeLast();
你可以用菊花链:
abc.removeLast().sort();
rur96b6h4#
Array.prototype.popAndReturnArray = function( ){ this.pop(); return this; }
f0brbegy5#
是的,你想要的是更一般的“过滤器”功能。它接受一个函数并返回通过测试函数的所有内容,下面是一个例子:
abc = ['a', 'b', 'c', 'd']; abc.filter(function(member,index) { return index !== abc.length - 1; });
6ovsh4lw6#
Splice和pop都将返回删除的元素。它们将改变原始数组,但如果您正在寻找一个返回没有删除的元素的数组的函数,请使用slice。这样您可以链式调用。
let abc = ['a', 'b', 'c', 'd']; abc = abc.slice(0, -1) .map(value => value += value); console.log(abc); // prints ['aa', 'bb', 'cc']
bybem2ql7#
pop
prototype
Array.prototype.pop = function() { this.length = this.length - 1 return this }
const abc = ['a', 'b', 'c', 'd']; console.log(abc.pop());
removeLast
Array.prototype.removeLast = function() { this.pop() return this }
如果你不想改变全局输出,最好在pop()之后记录你的数据
const abc = ['a', 'b', 'c', 'd']; abc.pop() console.log(abc);
7条答案
按热度按时间nqwrtyyt1#
pop()
函数也从数组中删除最后一个元素,所以这就是你想要的(Demo on JSFiddle):gajydyqb2#
这样做
编辑:已经指出,这实际上返回了一个新数组(尽管具有相同的变量名)。
如果你想返回相同的数组,你就得自己创建函数
at0kjp5o3#
在表达式中,使用逗号运算符。
(文件:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comma_Operator// thx @零)
或者在函数中,最方便的是在Array prototype上设置它:
呼叫
你可以用菊花链:
rur96b6h4#
f0brbegy5#
是的,你想要的是更一般的“过滤器”功能。
它接受一个函数并返回通过测试函数的所有内容,下面是一个例子:
6ovsh4lw6#
Splice和pop都将返回删除的元素。它们将改变原始数组,但如果您正在寻找一个返回没有删除的元素的数组的函数,请使用slice。这样您可以链式调用。
bybem2ql7#
要更改JavaScript中
pop()
方法的默认行为,必须更改pop
方法的prototype
你也可以用你的自定义oputput创建另一个Array方法,比如
removeLast
:如果你不想改变全局输出,最好在pop()之后记录你的数据