4
A
回答
5
JavaScript沒有用於覆蓋內置的算術運算符的設施。
有一些有限的技巧,你可以通過覆蓋.valueOf()
和.toString()
方法來拉動,但我無法想象你如何能夠做你所要求的。
你當然可以寫一個函數來做到這一點。
0
我知道這是你想做不完全是,但你的問題的解決辦法是做這樣的事情:
var arrayAdd = function() {
var arrays = arguments,
result = [0, 0];
for(var i = 0, s = arrays.length; i < s; i++) {
for(var j = 0, t = arrays[ i ].length; j < t; j++) {
result[ j ] += parseInt(arrays[ i ].shift(), 10);
}
}
return result;
};
var sum = arrayAdd([1,2], [5,10]); //Should return [6, 12]
console.log(sum);
請注意,此代碼是不是最終的。我看到一些問題:
- 結果數組的初始值應該是動態
- 我還沒有測試的代碼,如果陣列是相等的長度不
好運!
+0
嗯,根據你的聲譽@Misha,你一定已經想過這個解決方案了。 :\ – Cybrix 2012-03-31 14:46:33
1
一個不錯的'加'方法怎麼樣? 這並不關心有多少指標要麼數組, 但是任何非數值轉換爲0。
Array.prototype.plus= function(arr){
var L= Math.max(this.length,arr.length);
while(L){
this[--L]= (+this[L] || 0)+ (+arr[L] || 0);
}
return this;
};
[1, 2].plus([5, 10])
/* returned value: (Array)
[6,12]
*/
[1, 2].plus([5, 10]).plus(['cat',10,5])
/* returned value: (Array)
6,22,5
*/
相關問題
- 1. 如何在Julia中重載/重新定義二元運算符?
- 2. OCaml重新定義中綴運算符
- 3. 如何在C中添加或重新定義運算符?
- 4. 在C#中定義新的運算符?
- 5. 如何在MathJax中定義一個新函數('運算符')?
- 6. 重載[]數組運算符在Javascript
- 7. 在Javascript數組中使用運算符
- 8. 重新定義__and__運算符
- 9. 如何在Javascript中重新定義`this`?
- 10. Groovy中的數組重載+運算符
- 11. 如何將指針保存到重新定義的運算符?
- 12. 我可以在JavaScript中定義自定義運算符重載嗎?
- 13. 如何在prolog中定義一組數字的二元運算?
- 14. 在C++中重新定義的<<運算符的奇數輸出
- 15. 如何定義運算符= =
- 16. 重新定義已定義類型的單個運算符。 C++
- 17. 定義逗號運算符,如javascript
- 18. PHP在邏輯運算符中定義數組變量
- 19. 在基類中的運算符定義
- 20. 字符串數組中的Javascript算術運算符
- 21. 有關在運算符重載定義
- 22. 在C++中重載新運算符
- 23. 定義類型參數的定義運算符重載
- 24. 通過重載運算符訪問自定義數組包裝中的元素[]
- 25. 定義運算符()函數
- 26. 重載已定義的運算符
- 27. 如何重新排序字符串中的運算符?
- 28. Haskell - 重新定義(隱藏)算術運算符
- 29. 在C++中定義運算符**
- 30. 運算符<<在Qt項目中的多重定義
你不知道。即使運算符超載是可能的,並且您可以爲現有類型專門做它,但不應該因爲它打破了大量代碼。 – delnan 2012-03-31 12:41:43