这是我试图替换的基本 JavaScript for 循环:
for (var i=0; i<tickers.length; i++) {
if (tickers[i].ticker === selectedTicker) {
selectTicker('portfolio', tickers[i]);
break;
}
}
这是lodash版本
_.times((tickers.length), function() {
if (tickers[i].ticker === selectedTicker) {
selectTicker('portfolio', tickers[i]);
return;
}
});
显然,当前会出现错误,因为 lodash 版本中没有设置 [i]
变量。
恕我直言,lodash 版本的可读性要高得多,只需执行我的代码数组长度的多次即可。
但是我需要将每个对象的股票代码与 selectedTicker
进行比较。
更新:添加屏幕截图和链接,以证明 _lodash 比 native Javascript 更快。
最佳答案
您可以使用_.find()
var ticker = _.find(tickers, {'ticker': selectedTicker});
// `find()` returns an object if the element is found in array
// it returns `undefined` if not found
if (ticker) {
// If element found in the array call the function
selectTicker('portfolio', ticker);
// return; // To return from the function
}
关于javascript - 如何比较基本 lodash 循环内数组中的特定项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35368609/