- Создайте объект (или карту), который отображает значение
fab
для ввода значений по умолчанию (fabToKey
).
- Создайте функцию (
getPredicate
), которая принимает значение и возвращает предикат.
- В
setDefaultIndex
получить значение fab
из fabToKey
. Если ключ ложный, верните 0;
- Получите
defaultValue
, используя Array.find()
. Примечание: вам нужно обработать не найденный случай - то есть поиск возвращает null
.
- Выполнить
findIndex()
с предикатом, созданным путем вызова getPredicate
с defaultValue[key]
.
Пример (не тестировался):
const fabToKey = { exterior: 'exteriorFabricCode', body: 'bodyLiningCode', sleeve: 'sleeveLiningCode' };
const getPredicate = value => ({ id }) => id === value;
setDefaultIndex(selectedFit, defaults, array, fab) {
const key = fabToKey[fab];
if (!key) return 0;
const defaultValue = defaults.find(item => item.fitCode === selectedFit);
// do something if defaultValue is null - ie selectedFit wasn't found
return array.findIndex(getPredicate(defaultValue[key]));
}