简体   繁体   中英

Find all unique values in array and than split it and return something else

My goal is to find all the unique years in this array and than return it as a array. I have almost done it but cant figure out how I will return the split value.

function findUniqueYears() {
  const arr = ['1973-11-01', '2001-01-01', '1999-10-01', '2007-10-01', '2016-06-01', '2005-08-01', '1973-09-01', '1979-12-01', '2001-08-01'];
  for (var i = 0; i < arr.length; i++) {
    for (var j = i + 1; j < arr.length; j++) {
      if (arr[i].split("-")[0] === arr[j].split("-")[0]) {
        arr.splice(j, 1);
      }
    }
  }
  console.log(arr)
}

这应该做

const findUniqueYears = (arr) => Array.from(new Set(arr.map(item => item.split('-')[0])))

You can use the function map to iterate via each element in the array then you can easily split date by '-' return 0 value and cast it to Set.

function findUniqueYears() {
  const arr = ['1973-11-01', '2001-01-01', '1999-10-01', '2007-10-01', '2016-06-01', '2005-08-01', '1973-09-01', '1979-12-01', '2001-08-01'];
  return new Set(arr.map((el) => el.split('-')[0]))
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM