discardFirst

discardFirst

  • (num: number) => (sequence: Sequence) => Sequence
  1. Discard the first num values

    const discardFirst2 = discardFirst(2)
    
    discardFirst2(['a', 'b', 'c', 'd']) // is ['c', 'd']
    discardFirst2('abcd') // is 'cd'
    const discardFirst2 = discardFirst(2)
    
    discardFirst2(['a', 'b', 'c', 'd']) // is ['c', 'd']
    discardFirst2('abcd') // is 'cd'
    
    const discardFirst2 = discardFirst(2)
    
    discardFirst2(['a', 'b', 'c', 'd']) // is ['c', 'd']
    discardFirst2('abcd') // is 'cd'
    const discardFirst2 = discardFirst(2)
    
    discardFirst2(['a', 'b', 'c', 'd']) // is ['c', 'd']
    discardFirst2('abcd') // is 'cd'
    
  2. Sometimes we get data in the form of arrays rather than objects. Below, we have chess results from a spreadsheet. Let's remove the first two columns of personal info.

    const [_headers, ...chessResults] = [
      ['name', 'email', 'result', 'color'],
      ['luke', 'luke@example.com', 'win', 'white'],
      ['emma', 'emma@example.com', 'draw', 'black'],
    ]
    
    const discardPersonalInfo = discardFirst(2)
    const discardAllPersonalInfo = mapValues(discardPersonalInfo)
    
    const updatedResults = discardAllPersonalInfo(chessResults)
    console.log(updatedResults)
    // is [
    //   ['win', 'white'],
    //   ['draw', 'black'],
    // ]
    const [_headers, ...chessResults] = [
      ['name', 'email', 'result', 'color'],
      ['luke', 'luke@example.com', 'win', 'white'],
      ['emma', 'emma@example.com', 'draw', 'black'],
    ]
    
    const discardPersonalInfo = discardFirst(2)<string[]>
    const discardAllPersonalInfo = mapValues(discardPersonalInfo)<string[][]>
    
    const updatedResults = discardAllPersonalInfo(chessResults)
    console.log(updatedResults)
    // is [
    //   ['win', 'white'],
    //   ['draw', 'black'],
    // ]
    
    const [_headers, ...chessResults] = [
      ['name', 'email', 'result', 'color'],
      ['luke', 'luke@example.com', 'win', 'white'],
      ['emma', 'emma@example.com', 'draw', 'black'],
    ]
    
    const discardPersonalInfo = discardFirst(2)
    const discardAllPersonalInfo = mapValues(
      discardPersonalInfo
    )
    
    const updatedResults =
      discardAllPersonalInfo(chessResults)
    console.log(updatedResults)
    // is [
    //   ['win', 'white'],
    //   ['draw', 'black'],
    // ]
    const [_headers, ...chessResults] = [
      ['name', 'email', 'result', 'color'],
      ['luke', 'luke@example.com', 'win', 'white'],
      ['emma', 'emma@example.com', 'draw', 'black'],
    ]
    
    const discardPersonalInfo = discardFirst(2)<
      string[]
    >
    const discardAllPersonalInfo = mapValues(
      discardPersonalInfo
    )<string[][]>
    
    const updatedResults =
      discardAllPersonalInfo(chessResults)
    console.log(updatedResults)
    // is [
    //   ['win', 'white'],
    //   ['draw', 'black'],
    // ]