首页 > 解决方案 > 对象是否将属性名称转换为字符串?不明白为什么这行得通

问题描述

处理一段代码,这发生在我身上:

async function getStatusesListForFilter(statusesToFilter, allStatuses) {
  const arrayOfStatuses = Array.isArray(statusesToFilter)
    ? statusesToFilter
    : statusesToFilter
        .split(',')
        .filter(item => item !== '')
        .map(item => item.trim());

  const filterOptions = {
    Active: DELIVERIES.ACTIVE_STATUSES,
    Inactive: DELIVERIES.INACTIVE_STATUSES,
    All: allStatuses.map(status => status.name),
  };

  return filterOptions[arrayOfStatuses] || arrayOfStatuses;
}

任何人都可以解释为什么会这样吗?

return filterOptions[arrayOfStatuses] || arrayOfStatuses;

这基本上是在做这个filterOptions[['Any Value']]并且它有效!

在此先感谢,该对象似乎将您在 [] 之间传递的任何内容解析为字符串。

标签: javascriptarraysnode.jsobject

解决方案


推荐阅读