split

split

  • (separator: string | regex) => (aString: string) => string[]
  1. Split a string into an array

    const splitCommas = split(',')
    splitCommas('a,b,c') // is ['a', 'b', 'c']
    
    const splitPhoneNumber = split(/[.-]/)
    splitPhoneNumber('555.123.4567')
    // is ['555', '123', '4567']
    
    splitPhoneNumber('555-123-4567')
    // is ['555', '123', '4567']
    const splitCommas = split(',')
    splitCommas('a,b,c') // is ['a', 'b', 'c']
    
    const splitPhoneNumber = split(/[.-]/)
    splitPhoneNumber('555.123.4567')
    // is ['555', '123', '4567']
    
    splitPhoneNumber('555-123-4567')
    // is ['555', '123', '4567']
    
    const splitCommas = split(',')
    splitCommas('a,b,c') // is ['a', 'b', 'c']
    
    const splitPhoneNumber = split(/[.-]/)
    splitPhoneNumber('555.123.4567')
    // is ['555', '123', '4567']
    
    splitPhoneNumber('555-123-4567')
    // is ['555', '123', '4567']
    const splitCommas = split(',')
    splitCommas('a,b,c') // is ['a', 'b', 'c']
    
    const splitPhoneNumber = split(/[.-]/)
    splitPhoneNumber('555.123.4567')
    // is ['555', '123', '4567']
    
    splitPhoneNumber('555-123-4567')
    // is ['555', '123', '4567']
    
  2. Sometimes we can extract data from a string by splitting it. Below, we have weather data in a CSV file. Let's split each newline to get the rows, then split each comma for the columns.

    const csv = `day,high,low
    monday,86,74
    tuesday,84,73
    wednesday,89,75`
    
    const splitRows = split('\n')
    const splitCols = split(',')
    const parseData = compose([splitRows, mapValues(splitCols)])
    
    const forecastData = parseData(csv)
    console.log(forecastData)
    // is [
    //   [day, high, low]
    //   [monday, 86, 74]
    //   [tuesday, 84, 73]
    //   [wednesday, 89, 75]
    // ]
    const csv = `day,high,low
    monday,86,74
    tuesday,84,73
    wednesday,89,75`
    
    const splitRows = split('\n')
    const splitCols = split(',')
    const parseData = compose([splitRows, mapValues(splitCols)<string[]>])
    
    const forecastData = parseData(csv)
    console.log(forecastData)
    // is [
    //   [day, high, low]
    //   [monday, 86, 74]
    //   [tuesday, 84, 73]
    //   [wednesday, 89, 75]
    // ]
    
    const csv = `day,high,low
    monday,86,74
    tuesday,84,73
    wednesday,89,75`
    
    const splitRows = split('\n')
    const splitCols = split(',')
    const parseData = compose([
      splitRows,
      mapValues(splitCols),
    ])
    
    const forecastData = parseData(csv)
    console.log(forecastData)
    // is [
    //   [day, high, low]
    //   [monday, 86, 74]
    //   [tuesday, 84, 73]
    //   [wednesday, 89, 75]
    // ]
    const csv = `day,high,low
    monday,86,74
    tuesday,84,73
    wednesday,89,75`
    
    const splitRows = split('\n')
    const splitCols = split(',')
    const parseData = compose([
      splitRows,
      mapValues(splitCols)<string[]>,
    ])
    
    const forecastData = parseData(csv)
    console.log(forecastData)
    // is [
    //   [day, high, low]
    //   [monday, 86, 74]
    //   [tuesday, 84, 73]
    //   [wednesday, 89, 75]
    // ]