Javascript 从返回的字符串创建单个数组

Javascript 从返回的字符串创建单个数组,javascript,arrays,Javascript,Arrays,我有一个for循环,它遍历某个类的所有元素并返回值(在我的例子中是一个日期,例如2020-05-15),然后将其拆分。所以我得到了多个数组,我想从中创建一个连续多年的数组,没有重复的数组 我的代码现在是基本的,但我经常遇到麻烦 function getDate () { for (var i = 0; i < total; i++) { var dateSplit = elements.date[i].innerText.split('-');

我有一个for循环,它遍历某个类的所有元素并返回值(在我的例子中是一个日期,例如2020-05-15),然后将其拆分。所以我得到了多个数组,我想从中创建一个连续多年的数组,没有重复的数组

我的代码现在是基本的,但我经常遇到麻烦

function getDate () {
        for (var i = 0; i < total; i++) {
            var dateSplit = elements.date[i].innerText.split('-'); 
            // this returns multiple arrays of {'year', 'month', 'day'}
            var dateOnly = dateSplit[0] // returns multiple strings of years
        }
}
函数getDate(){ 对于(变量i=0;i
如何将dateOnly合并到一个数组中?

您可以在
集合中收集年份,然后返回一个唯一值数组

function getDate() {
    const years = new Set;
    for (var i = 0; i < total; i++) {
        years.add(+elements.date[i].innerText.split('-', 1)[0]);
    }
    return [...years];
}
函数getDate(){ const years=新设置; 对于(变量i=0;i
您可以在
集合中收集年份
并返回唯一值数组

function getDate() {
    const years = new Set;
    for (var i = 0; i < total; i++) {
        years.add(+elements.date[i].innerText.split('-', 1)[0]);
    }
    return [...years];
}
函数getDate(){ const years=新设置; 对于(变量i=0;i试试下面的方法

function getYearAsArray(p1, p2) {
  var temp = ['2025-05-15', '2092-05-15', '2021-05-15', '2021-05-15'];
  
 var result =  temp.map(i=> {
  return i.replace(/^(\d{4})(-\d{2}-\d{2})$/, '$1');
  });
 
  return [...new Set(result)];;
}
试试下面的方法

function getYearAsArray(p1, p2) {
  var temp = ['2025-05-15', '2092-05-15', '2021-05-15', '2021-05-15'];
  
 var result =  temp.map(i=> {
  return i.replace(/^(\d{4})(-\d{2}-\d{2})$/, '$1');
  });
 
  return [...new Set(result)];;
}

您是获得多个数组还是多个数组项?这两者之间有区别你得到多个数组还是多个数组项?这两个元素之间存在差异
+
中的
+
元素.date[i]的作用是什么?这只是字符串到数字的转换吗?@DBS它将字符串转换为数字Right它是fo到数字的转换。@NinaScholz为什么调用不带括号的Set?@Randall,调用构造函数/函数并返回实例。我不需要空集合的参数。如果要链接实例,需要一些大括号。
+
中的
+
元素.date[i]做什么?这只是字符串到数字的转换吗?@DBS它将字符串转换为数字Right它是fo到数字的转换。@NinaScholz为什么调用不带括号的Set?@Randall,调用构造函数/函数并返回实例。我不需要空集合的参数。如果要链接实例,则需要一些大括号。