# getSelectOptionsBy(data, [fieldNames]) ⇒ Array.<Object>

将数据转换为带分组的选择器选项

Returns: Array.<Object> -

分组后的选择器选项,每个项包含label和一个子选项数组(默认名为options)


Author: liukun 919590347@qq.com

Param Type Default Description
data Array.<T>

要转换的数据数组

[fieldNames] Object

自定义字段名称配置

[fieldNames.groupNameField] string | function "groupName"

分组名称字段或获取函数

[fieldNames.groupIdField] string | function "groupId"

分组ID字段或获取函数

[fieldNames.labelField] string | function "label"

标签字段或获取函数

[fieldNames.valueField] string | function "value"

值字段或获取函数

[fieldNames.childrenField] string "options"

子选项字段名称

Example

import { getSelectOptionsBy } from '@wont/utils'

const data = [
  { groupId: '1', groupName: '分组1', id: 'a', name: '选项A' },
  { groupId: '1', groupName: '分组1', id: 'b', name: '选项B' },
  { groupId: '2', groupName: '分组2', id: 'c', name: '选项C' }
];

getSelectOptionsBy(data, {
  labelField: 'name',
  valueField: 'id'
});
// 返回:
// [
//   { label: '分组1', options: [{ label: '选项A', value: 'a', ... }, { label: '选项B', value: 'b', ... }] },
//   { label: '分组2', options: [{ label: '选项C', value: 'c', ... }] }
// ]

# getSelectOptionsBy()

分组数据存储类型