Array.prototype.创建 = function 创建 () {
var 局_参数列表 = [];
for (var i = 0, j = arguments; i < j.length; i++) 局_参数列表.push (j [i]);
var 局_数组对象 = 局_参数列表.length > 0 ? new Array (局_参数列表 [0]) : [];
return 局_参数列表.length == 1 ? 局_数组对象 : 局_数组对象.fill ([]).推理 (function () {
return this.创建.apply (this, 局_参数列表.slice (1));
});
}
Array.prototype.递归推理 = function 递归推理 () {
if (arguments.length > 0)
if (typeof (arguments [0]) == "function")
for (var i = 0, j = this; i < j.length; i++) {
if (Array.isArray (j [i])) j [i].递归推理.apply (j [i], arguments);
else j [i] = arguments [0].bind (j [i]) ();
}
return this;
}
用法:
var data = [].创建 (3, 2, 4).递归推理 (function () { return Math.取随机数 (1, 9); });
console.log (data);
结果:
[Array(2), Array(2), Array(2)]