在对象内循环数组,并根据数组值操作对象数据
Looping an array within an object and manipulating the object data based on array values?
我有这个非常痛苦的任务,我想与更有经验的开发人员分享。这看起来很简单,但我认为这真的很棘手。我在这里只展示这个对象,因为真实的对象包含很多其他的东西。
这是对象:
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}
我不知道,但对我来说,这似乎很令人困惑。也许你们之前已经做过类似的事情了。如果你能分享你的想法,我将不胜感激。
Thanks in advance
你需要使用这个迭代器来访问复选框的子索引
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();
编辑:变成可重复使用的函数,当提问者
我不确定这是否是你想要的,但试试这段代码。
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
};
});
相关文章:
- 将数组对象传递到struts2中的操作类
- 如何使用jquery返回php-json数组对象
- 从其名称获取javascript数组对象
- 值未与数组对象绑定
- 如何按数组/对象值的倍数过滤对象数组
- 在表中显示数组对象
- 在数组对象中分组
- 将第二个或多个数组推送到数组对象 AngularJS 中
- 重新排列 JavaScript 数组/对象
- 键上的javascript数组对象过滤器
- handontable:在不更改数据数组/对象的情况下隐藏某些列
- 用于跟踪购物车可用性的Javascript数组/对象/哈希表
- 重建有角度的java脚本数组对象
- 对JSON数组对象进行排序
- 连接与数组对象相关的文本:方式和位置
- 哪些浏览器和版本支持将常见的类数组对象直接传递到fn.apply()
- 如何使用Handlebars循环数组对象和模板
- 是否可以引用JS数组/对象中的另一个元素
- Javascript中的名称索引-数组/对象
- 数组长度不等于数组对象