访问对象拥有数组中的键值



我知道有人问过这个问题的变体,但请耐心等待。

我有以下包含对象的数组(它们是例程(:

const PREMADE_ROUTINES = [
{
itemIds: ['makebed', 'drinkwater', 'quickstretch', 'hotshower',  'brushteeth', 'smallsnack', 'getdressed', 'todolist', 'declutterinbox',],
routineDuration: DEFAULT_ROUTINE_ITEMS.getItemsFromIds(PASS THIS OBJECTS itemIds HERE)
}
]

在这种情况下,如何在PREMADE_ROUTINES数组中的每个对象中访问itemIds

在这种情况下,我需要将对象itemIds作为参数传递给函数。如果对象不在带有get()的数组中,我可以这样做。但是,在这种情况下我不知道该怎么做。有什么想法吗?

理想情况下,我想通过循环和简单地访问routineDuration键来简单地访问它。

在您的特定上下文中,最好的解决方案是中断itemIds声明。这样您以后在填充它时就不会遇到this问题。

const DEFAULT_ROUTINES = [
...
]
const PREMADE_ROUTINES = [ {
itemIds: DEFAULT_ROUTINES,
routineDuration: yourFunctionHere(DEFAULT_ROUTINES)
]}

我注意到您的数据结构有点复杂。可能值得重构它,并引入一些实用程序/过滤方法,以使您的生活在未来更轻松。

您可以创建一个返回例程对象的方法。这样它就更可重用了。

const createRoutine = (routines) => ({
itemIds: routines,
routineDurations: getRoutineDurations(routines)
});
const PREMADE_ROUTINES = [
createRoutine(['makebed', 'drinkwater', 'quickstretch']),
createRoutine(['hotshower',  'brushteeth', 'smallsnack']),
];

最新更新