我知道有人问过这个问题,但请耐心等待。
我有以下包含对象的数组(它们是例程):
const PREMADE_ROUTINES = [
{
itemIds: ['makebed', 'drinkwater', 'quickstretch', 'hotshower', 'brushteeth', 'smallsnack', 'getdressed', 'todolist', 'declutterinbox',],
routineDuration: DEFAULT_ROUTINE_ITEMS.getItemsFromIds(PASS THIS OBJECTS itemIds HERE)
}
]
在这种情况下,如何在itemIds
数组中的每个对象内访问PREMADE_ROUTINES
?
在这种情况下,我需要将对象itemIds
作为函数的参数传递。如果对象不在带有get()
的数组中,则可以执行此操作。但是,在这种情况下,我不知道该怎么做。有什么想法吗?
理想情况下,我想通过循环并简单地访问它来访问routineDuration
键。
答案 0 :(得分:0)
在您的特定情况下,最好的解决方案是取消itemIds
声明。这样一来,以后填充它时就不会遇到this
问题。
const DEFAULT_ROUTINES = [
...
]
const PREMADE_ROUTINES = [ {
itemIds: DEFAULT_ROUTINES,
routineDuration: yourFunctionHere(DEFAULT_ROUTINES)
]}
我注意到您的数据结构有点复杂。可能值得对其进行重构,并引入一些实用程序/过滤方法以使您的生活在将来更加轻松。
答案 1 :(得分:0)
您可以创建一个返回例程对象的方法。这样一来,它将更具可重用性。
const createRoutine = (routines) => ({
itemIds: routines,
routineDurations: getRoutineDurations(routines)
});
const PREMADE_ROUTINES = [
createRoutine(['makebed', 'drinkwater', 'quickstretch']),
createRoutine(['hotshower', 'brushteeth', 'smallsnack']),
];