我有一個任意值的數組。我寫了一個將數組轉換爲返回原始值的函數數組的函數,所以不用調用[3],而是調用a3。如何將JavaScript數組轉換爲函數
這是我的代碼不起作用? code。它給出了這個錯誤Cannot call method '1' of undefined
。
var numToFun = [1, 2, { foo: "bar" }];
var numToFunLength = numToFun.length;
function transform(numTo) {
for (var i = 0; i < numToFunLength; i++) {
(function(num){
numTo.unshift(function() {
return num;
});
}(numTo.pop()))
}
}
var b = transform(numToFun);
console.log(numToFun);
console.log(b[1]());
從我+1,肯定更簡單,更清潔。甚至原始數組也被保留下來! – kapa 2012-07-24 09:19:02
這是否是有效的方法?我的意思是它更快地改變我的解決方案? – 2619 2012-07-24 09:22:12
@ al0ne晚上:好吧,如果你問我,閱讀速度肯定會更快。 ;)除此之外,我無法想象任何兩種解決方案的速度差異都會顯着的用例。我總是建議從最易讀的方式開始編寫代碼,並且只考慮在分析代碼時以及代碼真正重要時優化代碼的速度。現在,當我想到它時,我可能會在幾分鐘內發佈更優雅的解決方案。 – rsp 2012-07-24 09:36:32