我正在尝试决定是否将 Javascript 中的 reduce() 方法用于我需要编写的函数,它是这样的
var x = [some array], y = {};
for (...) {
someOperation(x[i]);
y[x[i]] = "some other value";
}
现在这显然可以写成以下方式的 reduce() 函数:
x.reduce(function(prev, current, index, arr) {
someOperation(current);
prev[current] = "some other value";
return prev;
}, {})
或者类似的东西。两者之间有任何性能或其他差异吗?还是其他一些原因(例如浏览器支持)导致在 Web 编程环境中哪个更受青睐?谢谢。
最佳答案
尽管我更喜欢这些操作(reduce、map、filter 等),但由于某些浏览器在其实现中不支持它们,因此使用它们仍然不可行。当然,您可以通过扩展 Array
原型(prototype)来“修补”它,但这也带来了麻烦。
我不认为这些函数有任何内在的错误,我认为它们有助于编写更好的代码,但目前最好不要使用它们。一旦更高比例的人使用支持这些功能的浏览器,我认为他们将成为公平游戏。
就性能而言,由于函数调用的开销,这些循环可能比手写的 for 循环慢。
关于javascript - Javascript的reduce()函数有什么优点? (和 map ()),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6366143/