【问题标题】:Array.push only pushing a single value instead of all of them in JSArray.push 仅推送单个值而不是 JS 中的所有值
【发布时间】:2021-03-25 19:38:50
【问题描述】:

我已经在我的 JavaScript 中声明了一个简单的数组,我正在尝试从另一个包含字典的数组中推送值。但只有第一个值被推送,其余的都没有。

<script>

complist = []
var testjs = [{'issuancedte': 'Finance', 'totalcomp': 1}, {'issuancedte': 'AnotherOne', 'totalcomp': 5}]

for (opt in testjs)
   if ((adm_section_array.includes(testjs[opt].issuancedte)))
     $('#data').append('<tr><td>' + testjs[opt].issuancedte + '</td><td>' + testjs[opt].totalcomp + '</td></tr>')
     complist.push(testjs[opt].totalcomp);

</script>

所以,从上面的代码我应该得到:

complist = [1, 5]

但我只得到:

complist = [1]

由于某些完全未知的原因,如果我将 .push 行放在我将数据附加到表单的行的上方,则会按应有的方式制作 complist,但不会附加表格。

【问题讨论】:

    标签: javascript arrays list object


    【解决方案1】:

    应该这样写,

    if ((adm_section_array.includes(testjs[opt].issuancedte))) {
         $('#data').append('<tr><td>' + testjs[opt].issuancedte + '</td><td>' + testjs[opt].totalcomp + '</td></tr>')
         complist.push(testjs[opt].totalcomp);
    }
    

    注意 if 块后面的花括号。

    【讨论】:

    • 哇,菜鸟的错误,不应该那样做。感谢您指出,它现在正在工作!
    • 如果这个答案解决了问题,请检查它是否已解决。
    • 会做,要等10分钟才能做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多