为参数使用变量名

时间:2019-04-30 23:46:48

标签: javascript arrays

是否可以将动态变量名传递给方法?我有一个“获取我的数据”类型的方法,该方法不希望基于对象数组中的某个字段返回已排序的列表。

GetOrderedList(name = 'DisplayName', order = 'asc') {
    switch (order) {
      case 'desc':
        return this.MyList.sort((childA, childB) => SortingHelper.sortByStringDesc(childA.DisplayName, childB.DisplayName));
      default:
        return this.MyList.sort((childA, childB) => SortingHelper.sortByStringAsc(childA.DisplayName, childB.DisplayName));
    }
  }

然后调用javascript排序,该排序使用我的排序功能。

export const sortByStringAsc = (itemStringA, itemStringB) => {
  console.log('Sorting!', itemStringA);
  // If either of the strings are null or blank, just return that no sort is needed.
  if (!itemStringA || !itemStringB) {
    return 0;
  }

  const stringA = itemStringA.toUpperCase();
  const stringB = itemStringB.toUpperCase();

  if (stringA < stringB) {
    return -1;
  }
  if (stringA > stringB) {
    return 1;
  }
  return 0;
};

在代码中,我正在硬编码“ childA.DisplayName”。但是我需要使用传递给方法的“名称”变量。这有可能吗?

0 个答案:

没有答案