【One topic per day】Which are in?

前端题库,Javascript题集

Posted by Jerry on March 23, 2019

Which are in?

Given two arrays of strings a1 and a2 return a sorted array r in lexicographical order of the strings of a1 which are substrings of strings of a2.

#Example 1:

a1 = [“arp”, “live”, “strong”]

a2 = [“lively”, “alive”, “harp”, “sharp”, “armstrong”]

returns [“arp”, “live”, “strong”]

#Example 2:

a1 = [“tarp”, “mice”, “bull”]

a2 = [“lively”, “alive”, “harp”, “sharp”, “armstrong”]

returns []

Notes:

  • Arrays are written in “general” notation. See “Your Test Cases” for examples in your language.

  • In Shell bash a1 and a2 are strings. The return is a string where words are separated by commas.

  • Beware: r must be without duplicates.
  • Don’t mutate the inputs.

Reply

//method 1:
inArray = (a1, a2) => {
  var str = a2.join(' ');
  return a1.filter(s => str.indexOf(s) !== -1).sort();
}

//method 2:
inArray = (a1, a2) => {
  return array1
    .filter(a1 => array2.find(a2 => a2.match(a1)))
    .sort()
}

同Github,欢迎star