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. OCaml重新定义中缀运算符
- 2. 在C#中定义新的运算符?
- 3. 重新定义__and__运算符
- 4. 如何在Javascript中重新定义`this`?
- 5. Groovy中的数组重载+运算符
- 6. 如何将指针保存到重新定义的运算符?
- 7. 在C++中重新定义的<<运算符的奇数输出
- 8. 如何定义运算符= =
- 9. 重新定义已定义类型的单个运算符。 C++
- 10. 定义逗号运算符,如javascript
- 11. PHP在逻辑运算符中定义数组变量
- 12. 在基类中的运算符定义
- 13. 字符串数组中的Javascript算术运算符
- 14. 有关在运算符重载定义
- 15. 定义类型参数的定义运算符重载
- 16. 通过重载运算符访问自定义数组包装中的元素[]
- 17. 重载已定义的运算符
- 18. Haskell - 重新定义(隐藏)算术运算符
- 19. 如何重新排序字符串中的运算符?
- 20. 问题定义新的运算符
- 21. C++运算符在已重载的运算符中重载
- 22. 如何在C#3.5的超类中定义cast运算符?
- 23. 定义[] =运算符
- 24. 如何在Javascript中重新排列数组中的项目?
- 25. C++自定义运算符新
- 26. JavaScript中的ezurl运算符
- 27. 如何在Swift中创建自定义关系运算符
- 28. 二元运算符应该如何在野牛中定义?
- 29. 如何在模式中为OR运算符定义范围?
- 30. 如何在Haskell中定义一个后缀运算符?
你不知道。即使运算符超载是可能的,并且您可以为现有类型专门做它,但不应该因为它打破了大量代码。 – delnan 2012-03-31 12:41:43