Javascript 如何使数组中收集的循环值在循环外部可用以供将来使用

Javascript 如何使数组中收集的循环值在循环外部可用以供将来使用,javascript,arrays,Javascript,Arrays,从表单中获取多个复选框的值,并收集到一个数组中,该数组现在在当前for循环中可用,但我希望该数组在循环之外用于将来的用途。 现在我只获取循环中的所有值。 但当我在for循环外部打印同一数组时,它只显示数组中的最后一个值 <script> function submitform(path){ var ele = document.getElementsByClassName('del'); var arr = new Array

从表单中获取多个复选框的值,并收集到一个数组中,该数组现在在当前for循环中可用,但我希望该数组在循环之外用于将来的用途。 现在我只获取循环中的所有值。 但当我在for循环外部打印同一数组时,它只显示数组中的最后一个值

 <script>
    function submitform(path){
            var ele = document.getElementsByClassName('del');
            var arr = new Array();
            for(var i=0 ; i< ele.length ; i++ )
            {
                arr['arr2'] = ele[i].value;
            }
           console.log(arr);
        }
</script>

函数提交表单(路径){
var ele=document.getElementsByClassName('del');
var arr=新数组();
对于(变量i=0;i
问题在于,通过执行
arr['arr2']=ele[i].value,在for循环的每个周期中用另一个值初始化同一变量

因此,数组的末尾将只包含一个值

解决方案:使用for循环的增量变量
i
作为数组索引

function submitform(path){
    var ele = document.getElementsByClassName('del');
    var arr = [];
    for(var i=0 ; i< ele.length ; i++ )
    {
        arr[i] = ele[i].value;
    }
    console.log(arr);
}
函数提交表单(路径){
var ele=document.getElementsByClassName('del');
var-arr=[];
对于(变量i=0;i
问题在于,通过执行
arr['arr2']=ele[i].value,在for循环的每个周期中用另一个值初始化同一变量

因此,数组的末尾将只包含一个值

解决方案:使用for循环的增量变量
i
作为数组索引

function submitform(path){
    var ele = document.getElementsByClassName('del');
    var arr = [];
    for(var i=0 ; i< ele.length ; i++ )
    {
        arr[i] = ele[i].value;
    }
    console.log(arr);
}
函数提交表单(路径){
var ele=document.getElementsByClassName('del');
var-arr=[];
对于(变量i=0;i
函数提交表单(路径){
//var ele=document.getElementsByClassName('del');
var-ele=[5,4,3,2,1];
var arr=新数组();
对于(变量i=0;i
函数提交表单(路径){
//var ele=document.getElementsByClassName('del');
var-ele=[5,4,3,2,1];
var arr=新数组();
对于(变量i=0;isubmitform()使用push创建循环值数组,并在循环外部使用新数组

var OurElements = document.getElementById("ID");
var arr = [];//Make empty array
for (i=0;i<=OurElements.length;i++){
    arr.push(OurElements[i]);
}
console.log(arr);//Get array on console
console.log(arr.stringify);//This return array as strings, then you can save all data on variable 
var OurElements=document.getElementById(“ID”);
var-arr=[]//空数组

对于(i=0;i使用push创建循环值数组,并在循环外部使用新数组

var OurElements = document.getElementById("ID");
var arr = [];//Make empty array
for (i=0;i<=OurElements.length;i++){
    arr.push(OurElements[i]);
}
console.log(arr);//Get array on console
console.log(arr.stringify);//This return array as strings, then you can save all data on variable 
var OurElements=document.getElementById(“ID”);
var arr=[];//生成空数组

对于(i=0),在函数中给出数组。在全局范围内给出函数的数组。在全局范围内,将考虑使用<代码> AR.PUP(ELE [i]值);< /代码>代替<代码> ARR[i]=ele[i].value;
但这仅仅是因为我认为它更清楚您实际上在做什么。一些关于
推送的快速搜索提示也更快,但无法真正确定,因为jsperf已关闭。感谢大家的帮助。@HenrikAronsson是的。。但只有在元素数量较大的情况下。。我认为在这种情况下,它甚至不会触及10 I假设性能将是可忽略的。如果它的1000次推送将执行得更好,我会考虑使用<代码> AR.PUP(ELE [i]值);< /COD>而不是<代码> ARR[i]=ele[i].value;
但这仅仅是因为我认为它更清楚您实际上在做什么。一些关于
推送的快速搜索提示也更快,但无法真正确定,因为jsperf已关闭。感谢大家的帮助。@HenrikAronsson是的。。但只有在元素数量较大的情况下。。我认为在这种情况下,它甚至不会触及10 I假设这样,性能可以忽略不计。如果它的推力大于1000,则性能会更好