【发布时间】:2016-01-16 00:03:58
【问题描述】:
我试图弄清楚以下两个 sn-ps 代码之间的区别。它们都将一组子数组展平,并且都输出相同的东西。
Array.prototype.concatAll = function() {
var results = [];
this.forEach(function(subArray) {
subArray.forEach(function(element) {
results.push(element);
});
});
return results;
}; // [ [1,2,3], [4,5,6], [7,8,9] ] -> [1, 2, 3, 4, 5, 6, 7, 8, 9]
和
Array.prototype.concatAll = function() {
var results = [];
this.forEach(function(subArray) {
results.push.apply(results, subArray);
});
return results;
}; // [ [1,2,3], [4,5,6], [7,8,9] ] -> [1, 2, 3, 4, 5, 6, 7, 8, 9]
申请如何运作?为什么results要写两次?
【问题讨论】:
标签: javascript arrays apply