【发布时间】:2018-08-01 14:23:39
【问题描述】:
所以,我有一个包含多个对象的数组。
var profile = [
{"MODE":"Comfort","MONDAY":"09:00:00","TUESDAY":"09:00:00","WEDNESDAY":"09:00:00",
"THURSDAY":"09:00:00","FRIDAY":"09:00:00","SATURDAY":null,"SUNDAY":null},
{"MODE":"Eco","MONDAY":"22:00:00","TUESDAY":"22:00:00","WEDNESDAY":"22:00:00",
"THURSDAY":"22:00:00","FRIDAY":"22:00:00","SATURDAY":null,"SUNDAY":null},
{"MODE":"Standby","MONDAY":"07:30:00","TUESDAY":"07:30:00","WEDNESDAY":"07:30:00",
"THURSDAY":"07:30:00","FRIDAY":"07:30:00","SATURDAY":null,"SUNDAY":null},
{"MODE":"Standby","MONDAY":"21:00:00","TUESDAY":"21:00:00","WEDNESDAY":"21:00:00",
"THURSDAY":"21:00:00","FRIDAY":"21:00:00","SATURDAY":null,"SUNDAY":null}
];
有一个 MODE 属性和一个 week days 属性。
我想要的是将所有 MONDAY 值存储在名为 MONDAY 的数组中,将所有 TUESDAY 值存储在名为 TUESDAY 的数组中,等等。该值的键必须是 MODE(舒适、生态等)的值。 这就是目标:
var MONDAY = ["Comfort":"09:00:00","ECO":"22:00:00", ...]
var TUESDAY = ["Comfort":"09:00:00","ECO":"22:00:00",...]
我尝试过滤初始数组
var comfort = profile.filter(p => p.MODE == "Comfort");
var eco = profile.filter(p => p.MODE == "Eco");
var standby = profile.filter(p => p.MODE == "Standby");
var comfortMode = comfort[0];
var ecoMode = eco[0];
var standbyMode0 = standby[0];
var standbyMode1 = standby[1];
console.log(ecoMode["MONDAY"]);
console.log(standbyMode0["MONDAY"]);
但我已经卡在那个点上。似乎我需要硬编码值,并手写
var MONDAY = [ecoMode["MONDAY"],comfortMode["MONDAY"],standbyMode0["MONDAY"],standbyMode1["MONDAY"]];
var TUESDAY = [...,...,...,...]
有没有什么方法可以为comfortMode、ecoMode 和其他数组创建循环,其中每个键为MONDAY 的值都存储在一个名为MONDAY 的数组中?
【问题讨论】:
-
我在您的代码中看不到循环,只有变量和控制台输出。为什么不先尝试自己创建一个循环?
标签: javascript arrays object filter