为什么没有与同级一起工作的功能?

Eugen-Ask
创建于
2019-07-31 19:10:16

大家好!将这个函数(function)添加到库中怎么样?

function getSibling(list, item, offset) {
  const passedItemIndex = list.indexOf(item)
  return list[passedItemIndex + offset]
}

简单用法示例:

const letters = ['a', 'b', 'c', 'd', 'e']

function getNextLetter(letter) {
  return getSibling(letters, letter, 1)
}

getNextLetter('b') // -> 'c'
getNextLetter('c') // -> 'd'

getSibling(letters, 'a' , 2) // -> 'c'
getSibling(letters, 'b', 2) // -> 'd'

Real-world示例:
假设我们使用按钮"Next"和"Back"在online-shop中创建3-step签出向导。我通常是这样实现它的:

//Wizard.js

const wizardSteps = ['leave-name-and-address', 'checkout-form', 'thank-you']

const state = {
  currentStep: wizardSteps[0]
}

function onNextButtonClick() {
  state.currentStep = getNextSibling(wizardSteps, state.currentStep)
}

function onBackButtonClick() {
  state.currentStep = getPrevSibling(wizardSteps, state.currentStep)
}
//utils.js

export function getSibling(list, item, offset) {
  const passedItemIndex = list.indexOf(item)
  return list[passedItemIndex + offset]
}

export function getNextSibling(list, item) {
  return getSibling(list, item, 1)
}

export function getPrevSibling(list, item) {
  return getSibling(list, item, -1)
}

我总是在"utils.js"文件中使用这3个函数,我有点厌倦在每个项目中添加它们。为什么不把它们放在图书馆里?我认为它们在使用任何steps-related功能时都非常有用。

1条回答
jdalton
回复于
2019-08-12 21:20:20
#1

@Eugen-Ask

我认为这可能更适合于一个单独的、更集中的自由党。这感觉像是AST路径遍历器。

当前位于第1页,总计1条回复