我有这个非常痛苦的任务,我想与更有经验的开发人员分享。这似乎很容易,但我认为它真的很棘手。我将在这里向您展示这个对象,因为真正的对象涉及很多其他事情。
这是对象:
var data = {
checkboxes: ["A", "B", "C"],
customers : 1,
expDate: 2015
}
如果我基于data.checkboxes.length做一个简单的for循环,我最终得到这个:
Object {checkboxes: Array["A", "B", "C"], customers: 1, expDate: 2015}
Object {checkboxes: Array["A", "B", "C"], customers: 1, expDate: 2015}
Object {checkboxes: Array["A", "B", "C"], customers: 1, expDate: 2015}
你可以看到每个复选框包含3个项目,这不是我想要的东西。我希望每个对象都有一个复选框数组中的值。
以下是我希望得到的结果:
Object {checkboxes: "A", customers: 1, expDate: 2015}
Object {checkboxes: "B", customers: 1, expDate: 2015}
Object {checkboxes: "C", customers: 1, expDate: 2015}
我不知道,但对我来说这似乎很混乱。也许你们之前已经做过类似的事了。如果你分享你的想法,我将非常感激。
提前致谢
答案 0 :(得分:1)
我不确定这是不是你想要的,但试试这段代码。
var data = {
checkboxes: ["A", "B", "C"],
customers : 1,
expDate: 2015
}
var result = data.checkboxes.map(function(s) {
return {
checkboxes: s,
customers : data.customers,
expDate: data.expDate
};
});
答案 1 :(得分:1)
您需要使用该迭代器来访问复选框的子索引
var data = {
checkboxes: ["A", "B", "C"],
customers : 1,
expDate: 2015
}
console.log(data);
function getFormattedData()
{
document.write("<p>Printing Results:<br/>");
var results = [];
for(var i = 0; i < data.checkboxes.length; i++)
{
results[i] = data.checkboxes[i] + ", " + data.customers + ", " + data.expDate;
document.write(results[i] + "<br/>");
}
document.write("</p>");
return results;
}
getFormattedData();
data.customers = 2;
getFormattedData();
编辑:制作可重复使用的函数,在提问者
后发表评论