javascript - 如何比较基本 lodash 循环内数组中的特定项目

标签 javascript arrays lodash

这是我试图替换的基本 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 更快。

http://jsperf.com/forloop-vs-each-from-lodash

enter image description here

enter image description here

最佳答案

您可以使用_.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/

相关文章:

javascript - 在 MVC5 中如何打开一个新窗口并传递参数?

javascript - 是否可以在 javascript 中将数字与字符串相除?

javascript - 支持标记边的 JS Graph 库

javascript - 合并具有来自两个不同对象数组的相应键值的对象

javascript - 仅当所有字段已满或加载后更改时才执行 jQuery

arrays - 使用 Bash 查找数组中的多个重复项及其索引?

java - 如何使用 fill() 方法填充 Java 中特定对象的多维数组?

java - 如何获取JLabel[ ] [ ]中鼠标点击的标签索引?

javascript - 在javascript中对多个字段进行排序

javascript - 如果另一个数组具有相同的元素,则连接数组元素