为了账号安全,请及时绑定邮箱和手机立即绑定

Javascript push() 函数没有将对象添加到数组中

Javascript push() 函数没有将对象添加到数组中

蛊毒传说 2021-10-14 17:20:15
我有一个 for 循环,它循环使用 jquery 选择器收集的一些 html 元素,并从中提取一些文本或值。每个循环都会创建一个新对象。对象很简单,它只是文本和一个值。Console.log 确认每个循环都成功创建了对象。在 for 循环之外,我有一个初始化为数组的变量 (kvObjs)。在 for 循环结束时,我将新对象推送到数组中。但是 console.log 确认数组保持为空。这是一段较大代码的一部分。这似乎是不起作用的部分。不工作的特定函数是 getKVs(),好吧,除了试图将对象推送到数组上的部分之外,它可以工作。我向你保证,我浏览了所有或几乎所有的“类似问题”,但没有任何反应。不过,我可能错过了其中的某些内容。我觉得我忽略了一些明显的东西。我试图手动创建一个数组 (var x = ["bob", "steve", "frank"]) 然后设置另一个等于它的变量 (var y = x) 并且这似乎有效。我什至创建了一个对象数组,如 var x = [{"Key":"Bob","Value":10}, {"Key":"Steve","Value":5}],我认为这对。但我的 for 循环没有。<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script><style>    .Jobs {        width: 300px;        margin: 0 auto;    }    .Jobs li {        display: grid;        grid-template-columns: 1fr 50px;        padding: 2px 5px 2px 7px;        align-items: center;    }    .Jobs .value {        text-align: right;    }    .Jobs p.value {        padding-right: 7px;    }    .even {        background-color: rgba(0,0,0,0.2);    }</style><div class="Jobs">    <ul>        <li class="kvp">            <p class="key">Bob</p>            <input class="value" type="number" value="3"/>        </li>        <li class="kvp even">            <p class="key">Frank</p>            <input class="value" type="number" value="2"/>        </li>        <li class="kvp">            <p class="key">Tom</p>            <input class="value" type="number" value="8"/>        </li>        <li class="kvp total even">            <p class="key">Total</p>            <p class="value">13</p>        </li>    </ul></div><script>    class KV {        constructor(key, value) {            this.Key = key;            this.Value = value;        }    }    function getKVs(type) {        type = "." + type + " .kvp";        var elmts = $(type);        var kvObjs = [];        for (var i = 0; i < elmts.length; i++) {            var elmt = $(elmts[i]);            if(elmt.hasClass("total")) {                // do nothing            } 我不断得到一个空数组。
查看完整描述

3 回答

?
慕容3067478

TA贡献1773条经验 获得超3个赞

看来你有一个语法错误:

use kvObjs.push(kv);

代替

kvObjs.push[kv];


查看完整回答
反对 回复 2021-10-14
?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

看起来您的代码中有一个小错误。查看将对象推入数组的行:

kvObjs.push[kv];

您需要在 .push() 方法上使用括号。

kvObjs.push(kv);


查看完整回答
反对 回复 2021-10-14
  • 3 回答
  • 0 关注
  • 602 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信