我在我的代码中使用了很多。我可以作为一个班轮吗?基于另一个阵列的功能建立阵列
function anotherFunction(array)
{
new_array = [];
for (var i = 0; i < array.length; i++)
{
new_array.push(someFunction(array[i]));
}
return new_array;
}
我在我的代码中使用了很多。我可以作为一个班轮吗?基于另一个阵列的功能建立阵列
function anotherFunction(array)
{
new_array = [];
for (var i = 0; i < array.length; i++)
{
new_array.push(someFunction(array[i]));
}
return new_array;
}
var newArray = array.map(someFunction);
你应该注意的是,如果你需要支持,这可能失败的IE8,尽管
http://kangax.github.io/es5-compat-table/#Array.prototype.map
如果你还想快点... Array.prototype.map并不像循环那么快。
http://jsperf.com/array-map-vs-loop/2
这样:
function customMap(a,c){
var b=[],l=a.length;
while(l--){
b[l]=c(a[l]);
}
return b;
}
与
var newArray=customMap(oldArray,function);
这是非常快回吧。
您还可以创建自定义原型。
Object.defineProperty(Array.prototype,'CMap',{value:function(c){
var b=[],l=this.length;while(l--){b[l]=c(this[l])}
return b;
},writable:false,enumerable:false});
并使用它像地图。
var newArray=oldArray.CMap(function);
编辑
这里是jsperf测试...
http://jsperf.com/custom-vs-map
每个变量的测试之外定义...只能对自定义的速度是根据功能。
这适用于所有浏览器。
是的,删除换行符;)*只是在开玩笑*。 –
array.push应该是new_array.push和返回数组应该是返回new_array,我认为 –