gpt4 book ai didi

javascript - 数组查找, native 还是通过 jQuery?

转载 作者:行者123 更新时间:2023-11-29 16:16:32 24 4
gpt4 key购买 nike

你会做这种事吗?

    var getBoard1 = function(id) {
return $.grep(me.boards, function (board) {
return board.Id == id;
});
};

还是这种事情?

    var getBoard2 = function(id) {
for (var i = 0; i < me.boards.length; i++) {
var board = me.boards[i];
if (board.Id == id)
return board;
}
return null;
};

为什么在正确性、可读性和性能方面您更喜欢这种方式?如果您更愿意以第三种方式进行,请分享。

最佳答案

这是 grep 函数的样子 (jQuery v1.8.2):

grep: function( elems, callback, inv ) {
var retVal,
ret = [],
i = 0,
length = elems.length;
inv = !!inv;

// Go through the array, only saving the items
// that pass the validator function
for ( ; i < length; i++ ) {
retVal = !!callback( elems[ i ], i );
if ( inv !== retVal ) {
ret.push( elems[ i ] );
}
}

return ret;
}

本质上,您正在做同样的事情,因此在性能方面不会有太大差异。当我查看 jQuery 代码时,它们总是返回一个数组,您在其中返回 null。如果您已经在使用 jQuery,我会选择 jQuery 版本,因为它的可读性更好,否则请使用原生代码。

* -- 编辑 -- *

在查看代码时,这让我意识到它确实有所不同。当您的代码找到第一个项目(预期只有一个结果)时,它已经返回(并完成循环),其中 jQuery 循环遍历所有项目。因此,如果您只期望一个结果,您的版本会更快。

关于javascript - 数组查找, native 还是通过 jQuery?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14644693/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com