Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何删除javascript数组中的多余数据_Javascript_Jquery_Arrays_Checkbox - Fatal编程技术网

如何删除javascript数组中的多余数据

如何删除javascript数组中的多余数据,javascript,jquery,arrays,checkbox,Javascript,Jquery,Arrays,Checkbox,我有一些HTML表单,如下所示: 我还有一些jQuery代码,它将所有选中的值添加到一个数组中,该数组将转到输入值: $('separate#course_list')。在(“更改”、“:复选框”、函数()上{ var值=$('input:checkbox:checked').map(函数(){ 返回此.value; }).get();//[“1”、“2”、“4”] $(“输入[name='comment']”).val(值);//此输入保存数组 }); 在控制台.log中,我有这样一个选

我有一些HTML表单,如下所示:


我还有一些jQuery代码,它将所有选中的值添加到一个数组中,该数组将转到输入值:

$('separate#course_list')。在(“更改”、“:复选框”、函数()上{
var值=$('input:checkbox:checked').map(函数(){
返回此.value;
}).get();//[“1”、“2”、“4”]
$(“输入[name='comment']”).val(值);//此输入保存数组
});
控制台.log
中,我有这样一个选项(假设我先选中复选框,然后选中第三个复选框,然后选中第二个复选框):


片段(-1,3)
不起作用。

基本上,您的语法是错误的。很抱歉,
slice
的语法是:

arr.slice([begin[, end]])
当你给予:

slice(-1, 3)
数组的起始值不能为
-1
。因此,您必须寻找:

slice(3, -1)

从索引
3
开始,在最后一个之前结束,留下最后一个,如果这是您要寻找的。为什么从-1开始切片

slice方法的第一个参数是要删除的第一个索引,第二个参数是要删除的数据数

var array = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
array.splice(1,3);
输出应为:

橙色、柠檬色


来源:

您的选择器正在考虑页面上所有选中的复选框,因此额外的值是其他一些复选框的值,而不是使用
.map
打开
输入:复选框:选中[name=“teaching”]


如果您只想确定最后选中了哪个复选框,可以使用下面的代码段。如果您想要所有选中的复选框,您可以使用
slice(0,3)

a=[“1”、“815643”、“753327”、“752023”]//选中第一个复选框
b=[“1”、“3”、“815643”、“753327”、“752023”]//选中第三个复选框
c=[“1”、“3”、“2”、“815643”、“753327”、“752023”]//选中第二个复选框
函数IsCheckBox(值){
返回值<4;
}
document.write(“选中复选框”+a.slice(0,3).filter(IsCheckBox.slice(-1)[0]+'
')) document.write(“选中复选框”+b.slice(0,3).filter(IsCheckBox.slice(-1)[0]+'
')) document.write(“选中复选框”+c.slice(0,3).filter(IsCheckBox.slice(-1)[0]+'
')) //或者,如果希望选中所有复选框,这就足够了
document.write(“选中复选框”+c.slice(0,3))
那么您只需要与这些复选框关联的值?有名字的那个?为什么不在页面范围内映射这些复选框,而不是所有复选框?看起来你是在试图解决一个自我强加的问题,而不是一开始就试图不引起问题。但是从哪里来的
“815643”、“753327”、“752023”
???我不太明白问题是什么?!Op已经注释了
/[“1”、“2”、“4”]
,所以我猜这已经是预期/返回的结果。我可能错了,因为这完全不清楚这里要问什么,我非常感谢你。现在它工作了!但奇怪的是,我没有额外的复选框来摘录这些复选框。泰,你救了我的神经,你对地图返回内容的评论是不准确的。请确保在您发布文章时提供准确、完整的问题描述,否则我们很难确定问题,从而帮助您解决问题。哦,我明白了。我在解释上有些问题。我的错误,所以你只是抄袭,这不仅仅是诽谤,(看),这甚至是一个怎样的答案?请编辑您的答案以符合问题的要求。他可以自己思考,给出的答案不是建设性的。。。此外,对于一个最容易的人来说,像分裂一样思考。。。和一些人相比,如果我使用现有的例子,我会把我的资料放进去……好的,很好。我甚至不知道是谁投票给你的答案,但祝你好运<代码>:)
var array = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
array.splice(1,3);
$('#separate_course_list').on("change", ":checkbox", function () {

        var values = $('input:checkbox:checked[name="lecture"]').map(function () {
            return this.value;
        }).get(); // ["1", "2", "4"]

        $("input[name='comment']").val(values); //this input saves array

});