以下是我在Chrome的JavaScript控制台中所做的事情:
> var arr = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4];
> var foo = 3;
> arr.filter(function(value) { return value !== foo });
< [1, 2, 2, 4, 4, 4, 4]
> arr.filter(function(value) { return value !== foo }).push(foo);
< 8
> arr.filter(function(value) { return value !== foo }).push(3);
< 8
8
来自何处?
答案 0 :(得分:2)
答案 1 :(得分:2)
答案 2 :(得分:0)
Array.prototype.push()
会返回新数组的长度,如下所示:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push
如果您想从操作中获取新数组,则应使用Array.prototype.concat()
。但是你需要把它称为:`
arr.filter(function(value) { return value !== foo }).concat([foo]);
另一种方法是使用ES6:
[ ...arr, foo ]
它会传播数组的每个元素。您可以在此处进一步查看:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Spread_operator