我想将数组值存储在js字典中(对于每个日期键,都有一个该日期的对象数组)。 这可能吗?如果没有,最好的方法是什么? 这是数据(从 json 获取):
[
{
"date":"2015-02-08",
"hour":6,
"mac_address":"0C:3E:9F:60:53:32",
"is_inside":"0"
},
{
"date":"2015-02-08",
"hour":6,
"mac_address":"40:0E:85:52:68:4E",
"is_inside":"0"
},
{
"date":"2015-02-08",
"hour":6,
"mac_address":"60:F8:1D:DB:E4:A0",
"is_inside":"0"
}
]
我尝试了以下方法,但它只是生成一个字符串的长值。
for (var i=0; i<data.length; i++){
usersByDay[data[i].date] += data[i];
}
我该怎么做才能制作这样的数据结构:
{date: [object, object, object], another_date: [object...]}, i.e:
{"2015-02-08": [
{
"date":"2015-02-08",
"hour":6,
"mac_address":"0C:3E:9F:60:53:32",
"is_inside":"0" },
{
"date":"2015-02-08",
"hour":6,
"mac_address":"40:0E:85:52:68:4E",
"is_inside":"0" }]
}
最佳答案
+=
不会将值推送到 JavaScript 中的数组中,但 push
可以!您还需要检查该键是否存在,如果不存在则创建一个新数组。
for (var i = 0; i < data.length; i++) {
var item = data[i];
if (usersByDay[item.date]) {
usersByDay[item.date].push(item);
} else {
usersByDay[item.date] = [item];
}
}
或者,如果您喜欢“奇特”:
for (var i = 0; i < data.length; i++) {
var item = data[i];
(usersByDay[item.date] || (usersByDay[item.date] = [])).push(item);
}
关于javascript - 如何在 JavaScript 字典中存储数组的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29784976/