【发布时间】:2014-03-22 21:30:15
【问题描述】:
如果Array.prototype.filter返回一个数组,为什么我不能立即在这个返回值上调用push()?
例子:
var arr = ["a", "ab", "c", "ad"];
var arr2 = arr.filter(function(elmnt) { return elmnt.indexOf("a") > -1; });
// result: ["a", "ab", "ad"]
arr2.push("aaa");
// result: ["a", "ab", "ad", "aaa"]
到目前为止还可以。
但是如何将push() 调用链接到filter() 调用?
var arr = ["a", "ab", "c", "ad"];
var arr2 = arr.filter(function(elmnt) { return elmnt.indexOf("a") > -1; }).push("aaa");
// result: 4
为什么链接 filter() 和 push() 会产生我期望的元素数量,而不是这些元素的数组?
【问题讨论】:
标签: javascript arrays filtering chaining method-chaining