我有
_.each(this.fields, function(field, idx) {
我想我可以把它改成
this.fields.forEach(function(field, idx) {
不破坏任何东西。
下划线的
each
和原生JS实现的forEach
真的有区别吗?
使用下划线或lodash等库,您可以轻松编写代码,而不必担心不同浏览器的兼容性问题。
您获得的第二个优势是
_.each
也可以迭代 object
:
_.each([1, 2, 3], alert);
=> alerts each number in turn...
_.each({one: 1, two: 2, three: 3}, alert);
=> alerts each number value in turn...
另一点不经常指定的是 _.each 处理
null
和 undefined
情况,其中 forEach
会抛出错误。
但是,对于这种操作,我强烈建议使用原生的
forEach
。这样,您的技能就不会依赖于图书馆。成为 JS 专家比成为下划线专家更有价值(当然也有例外)。
还有一点,这里是使用原生
null
处理 undefined
和 forEach
的语法:
array?.forEach?.(element => {
console.log(element);
});
如果有必要,就这样做。因为这种语法在代码中说了很多,无论有没有问号,它的意思是“我 100% 确定我这里有一个数组”或“我不确定它是否是一个数组”。如果你有 99.99% 的把握,请使用问号。