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

时间:2019-10-22 14:15:17

标签: javascript

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

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

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键。

2 个答案:

答案 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']),
];