JQuery:serializeArray() 性能

JQuery: serializeArray() performance

我找到了两种不同的方法来查找输入到表单中的数据,但不确定使用哪一种。我将使用一个相当大的表格,所以性能很重要。第一个选项使用 .serializeArray(),第二个选项使用 .find().val()

选项 1:

var values = {};

$.each($growDetailsForm.serializeArray(), function (i, field) {
    values[field.name] = field.value;
});
var getValue = function (valueName) {
    return values[valueName];
};

var first = getValue("first-name");
var first = getValue("last-name");
...

选项 2:

var $form = $('form');
var $first = $form.find('.first-name').val();
var $last = $form.find('.last-name').val();
...

有谁知道哪个选项更快?我假设选项 1 更快,因为我相信它会一次获取所有值并将它们放入一个数组中,从而为您提供一个较小的对象进行搜索。选项 2 每次查找某个值时都会搜索整个 DOM,这让我觉得它更慢。但是我不是专家,所以我不是很自信。如果我只搜索两个值,可能不会有太大区别,但我会搜索更多的值。任何见解表示赞赏。

除非你的表格很大(读起来太大了!)它不会有任何明显的区别,但如果你想亲眼看看,你可以找到 here

我希望以后维护代码的可读性,所以第二种方法对我来说似乎更好,尽管你可以进一步简化它 $('.first-name').val()