jQuery 值存在于数组中

jQuery value exists in array

我在 HTML、PHP 和 jQuery 中处理联系表。

最近,我尝试保护整个表单,为了实现这一点,我使用了这样的数组:

var parameters = [
        {
            'format': 'email',
            'value': 'bernard.dupont@yahoo.fr'
        },
        {
            'format': 'subject',
            'value': 'Hello world'
        },
        {
            'format': 'message',
            'value': 'Good morning !'
        }
    ]`

这是我的代码:

function verificationInput(array, format, param, field, length) {
    var test = verificationFormat(format, param, length);

    if (!test) {
        $('#' + field).removeClass('valid').addClass('invalid');
    } else {
        $('#' + field).removeClass('invalid').addClass('valid');
    }

    var added=false;
    $.map(array, function(key, item) {
        if (item.value == param) {
            item.value = param;
            added = true;
        }
    });
    if (!added) {
        array.push({format: format, value: param});
    }
}

想法是如果存在格式则更改值,如果存在则更改值。

为什么不使用按格式键入的数据结构?使用它会容易得多:

var parameters = {
    email: 'bernard.dupont@yahoo.fr',
    subject: 'Hello world',
    message: 'Good morning !'
};

那么您的代码可能如下所示:

parameters[format] = param;

如果格式不存在,这将添加该格式,否则将更新与该格式关联的值。

如果您需要迭代参数,您仍然可以使用 $.map