繁体   English   中英

将键值对附加到特定索引处的数组

[英]append key value pair to array at a particular index

我使用以下方法填充了serializeArray()数据:

var compArr = $(':input[name="cc_text"]').serializeArray();

console.log(compArr)看起来像这样:

0:{name: "cc_text", value: "spring 2016;"}
1:{name: "cc_text", value: "fall 2016;"}

我需要在每个索引中分别添加一个新条目,例如code: "B007"code: "J007" ,以便新数组如下所示:

0:{name: "cc_text", value: "spring 2016;", code: "B007"}
1:{name: "cc_text", value: "fall 2016;", code: "J007"}

当前,我有一个for循环,如下所示:

for(var j = 0; j < countVar; j++)
{
  compArr.push({code: $('#label_text_'+j).text()})
}

我得到的结果看起来像这样:

0:{name: "cc_text", value: "spring 2016;"}
1:{name: "cc_text", value: "fall 2016;"}
2:{code: "B007"}
2:{code: "J007"}

当我尝试在内部循环中执行以下操作时:

compArr[j].push({code: $('#label_text_'+j).text()})

我收到错误compArr[j].push不存在任何推送功能。

有没有一种方法可以在不重新创建新数组并重新插入所有数据的情况下实现这一点,也许只需修改我填充初始serializeArray()

您正在尝试添加到对象,而不是添加到数组。 尝试这个:

compArr[j].code = $('#label_text_'+j).text();

您的compArr包含对象。 看起来您想向每个对象添加一个“ code”属性。 为此,请遍历compArr并将适当的代码添加到每个对象。

for (var i = 0; i < compArr.length; i += 1) {
    compArr[i].code = $('#label_text_'+i).text();
}

上面的示例假定您具有包含代码值的#label_text_0和#label_text_1元素。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM