【问题标题】:JS How to push integers from for loop into arrayJS如何将整数从for循环推入数组
【发布时间】:2017-09-11 11:42:22
【问题描述】:
var period  = document.getElementById('period').value;
        var col = element.id.split('time')[1];
        var ValueArr=[];
        for(var x= 0;x < period; x++){
            var taskValue = document.getElementById('taskDone'+x).value;
            for(var p= 0;p < taskValue; p++){
                var ValueB = document.getElementById(col+"_"+taskValue).value;
                console.log(ValueB);
                ValueArr.push(ValueB);
                //var newValue = ValueArr.sort(function (a, b) {  return a - b;  });
            }
        }
        alert(newValue);

所以我在一个函数中有这个,我想将 ValueB 推入 ValueArr。 对于ValueB,它将具有未指定的数字长度和未指定的数字,但是当我尝试时,我得到了这个:https://imgur.com/a/Oz8Cy

【问题讨论】:

    标签: javascript arrays for-loop push


    【解决方案1】:

    您在alert 中犯了错误。它应该是 alert(ValueArr); 而不是 alert(newValue); 。这就是为什么您会收到该错误Reference error: newValue is not defined。您还需要 ValueArr 中的独特元素,所以使用此代码

    var newValue = ValueArr.filter(function(itm, i, a) {
        return i == a.indexOf(itm);
    });
    

    固定代码:

    var period  = document.getElementById('period').value;
    var col = element.id.split('time')[1];
    var ValueArr=[];
    for(var x= 0;x < period; x++){
        var taskValue = document.getElementById('taskDone'+x).value;
        for(var p= 0;p < taskValue; p++){
            var ValueB = document.getElementById(col+"_"+taskValue).value;
            console.log(ValueB);
            ValueArr.push(ValueB);
            var newValue = ValueArr.filter(function(itm, i, a) {
                 return i == a.indexOf(itm);
            });
            //var newValue = ValueArr.sort(function (a, b) {  return a - b;  });
        }
    }
    alert(ValueArr);
    

    【讨论】:

    • 不,我正在尝试修复推送,如果您在图片中看到它会在推送后打印 ValueArr 中的内容,而我只想拥有 1、2、3
    猜你喜欢
    • 2012-02-18
    • 2017-12-23
    • 1970-01-01
    • 1970-01-01
    • 2018-09-26
    • 2015-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多