Javascript-为循环中的动态键添加多个动态值
Javascript - Add multiple dynamic values to dynamic key in for loop
我有一个循环,我想为前端编译一个对象。
循环设置了一个用户、小时和时间戳变量,我想从中动态创建新对象。
到目前为止,这是我所拥有的,但它不起作用,因为它显然只是取代了用户。任何帮助都是最好的方法,谢谢。
var Things = { /* big dump of data */ };
var usersHours = {};
for (var i = Things.length - 1; i >= 0; i--) {
var user = Things[i].user;
var hours = Things[i].hours;
var timeStamp = Things[i].timeStamp;
var hoursAdd = {};
hoursAdd[timeStamp] = hours;
usersHours[user] = hoursAdd;
};
// example of wanted final output
var usersHours = {
user1 : {
1406178757855 : 10:00,
1406178743473 : 04:00,
1406178759600 : 04:44
},
user2 : {
1406178475847 : 01:30,
1406193847384 : 07:00,
1406984783487 : 08:44
},
user3 : {
1406173847787 : 01:40,
1406139847873 : 07:14,
1406183748374 : 08:34
}
}
因此,您可以测试用户是否已经有数据,以及他们是否没有创建一个空白对象,以便添加新数据。在下面的示例中,如果同一用户的任何时间戳都相同,则数据将被覆盖。
Things = [{
user: "user1",
hours: "5",
timestamp: "12312312322"
}, {
user: "user1",
hours: "2",
timestamp: "12322312322"
}, {
user: "user1",
hours: "1",
timestamp: "12312392322"
}, {
user: "user2",
hours: "5",
timestamp: "12312312322"
}, {
user: "user2",
hours: "2",
timestamp: "12322312322"
}, {
user: "user2",
hours: "1",
timestamp: "12312319322"
}, {
user: "user3",
hours: "5",
timestamp: "12312312322"
}, {
user: "user3",
hours: "2",
timestamp: "12322312522"
}, {
user: "user3",
hours: "1",
timestamp: "123123222322"
},
]
var usersHours = {};
for (var i = Things.length - 1; i >= 0; i--) {
var user = Things[i].user;
var hours = Things[i].hours;
var timeStamp = Things[i].timestamp;
//test if user has already got data
if (!usersHours[user]) {
usersHours[user] = {};
}
//set/or possibly override a timestamp for the user with the hours
usersHours[user][timeStamp] = hours;
};
console.log(usersHours);
如果想要多个动态值,则需要使用数组而不是键。键有一对,数组可以保存您需要的数据。
相关文章:
- 如何在Google柱状图中动态添加行/列
- 使用jQuery动态添加表并在其中动态添加行
- 如何使用Angular动态添加iframe-src
- 如何向JSON数组动态添加属性
- 动态添加通过json创建的选择项
- 使用jQuery根据动态生成的html动态添加html
- 使用.on动态添加jquery/js不知道的html元素
- JS动态添加字段-删除按钮不起作用
- 动态添加AngularJS脚本
- 将表行动态添加到表或tbody元素中
- jQuery-通过AJAX调用动态添加具有值的表单元格
- 将特定属性动态添加到元素中
- 在highcharts.js中向点弹出窗口动态添加文本
- 如何在Angular.js中循环动态添加Fields并获取数据并将其发送到服务器
- 使用jQuery动态添加onClick事件
- 如何在Opencart中动态添加JavaScript
- 剑道UI下载列表:如何动态添加新元素
- 动态添加复选框和输入框 jQuery
- 动态添加哈希标记;t工作
- 将图表动态添加到组合高图表中