优化Javascript方法来填充或清空数组
Optimize Javascript Method to fill or empty an array
我想知道是否有更好的方法来添加/删除复选框值到数组。遗憾的是我不能使用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
之前保持键
相关文章:
- 如何使用Javascript将空数组发送到PHP服务器
- 如果在代码末尾进行求值,jQuery-console.log将提供空数组
- React perf总是打印空数组
- 函数触发时清空数组
- 在javascript中声明空数组
- 为什么空数组上的 indexOf 不返回 -1
- 空数组和排序推送键 JavaScript
- 主干输出用于集合模型的空数组
- 无法在提交之间清空数组
- 如何清空数组
- 将数组的长度设置为 0 似乎不会清空数组
- 如何清空数组
- 清空数组不会;我不使用javascript
- 点击添加到现有数组只是清空数组的原因
- 清空数组后,Angular不会更新
- 清空数组并通过数据绑定提出更改
- 如何使用ES6 array .fill()清空数组
- 使用ImmutableJ清空数组
- 优化Javascript方法来填充或清空数组
- Angularjs在填充数据之前清空数组