优化Javascript方法来填充或清空数组

Optimize Javascript Method to fill or empty an array

本文关键字:清空 数组 填充 Javascript 方法 优化      更新时间:2023-09-26

我想知道是否有更好的方法来添加/删除复选框值到数组。遗憾的是我不能使用ECMAScript 5 indexOf(),因为我需要支持IE8/7。

下面是一个工作的jsfiddle示例:http://jsfiddle.net/puyQr/

这个方法的作用是:

/**
 * If a user clicks onto the checkbox, the value of the value attribute is
 * only added to the array when the value not yet exists. However, if
 * the value already exists, the value is removed.
 */
var values = [];
jQuery(':checkbox').on('click', function(){     
    var index = jQuery.inArray(this.value, values);
    if(index === -1) {
        values.push(this.value);
    } else {
        values.splice(index, 1);
    }
});

从复选框中获取值的另一种方法:

var values = jQuery(':checkbox:checked').map(function(){
    return $(this).val();
}).get();
演示

可以,使用对象字量

var values = {};
jQuery(':checkbox').on('click', function () {     
    if (this.value in values && values[this.value] === 1) {
        values[this.value] = 0;
    } else {
        values[this.value] = 1;
    }
});

如果你想要它作为一个数组以后,转换它是一个简单的事情,使用for..in和检查1之前保持