为了账号安全,请及时绑定邮箱和手机立即绑定

使用 push() 方法和 indexOf() 方法从 AngularJS1 中的数组中删除

使用 push() 方法和 indexOf() 方法从 AngularJS1 中的数组中删除

慕码人2483693 2023-04-27 15:00:59
我能够提取 EPOCH 日期并将它们成功转换为字符串,但是我之前编写的代码没有检查或删除重复项。任何人都知道我可以添加什么来做到这一点?在这种情况下,时间戳是我从实时数据中提取的 EPOCH 日期!角度JS1
查看完整描述

3 回答

?
www说

TA贡献1775条经验 获得超8个赞

var dateMap = {};

for (i = 0; i < dbData.length; i++) {

  let tmp_date_str = "";

  let tmp_date = new Date(dbData[i].TIMESTAMP);


  tmp_date_str += tmp_date.getFullYear();

  tmp_date_str += "-";


  if ((tmp_date.getMonth()+1) < 10) {

      tmp_date_str += "0";

  }


  tmp_date_str += (tmp_date.getMonth()+1);

  tmp_date_str += "-";


  if (tmp_date.getDate() < 10) {

      tmp_date_str += "0";

  }

  tmp_date_str += tmp_date.getDate();


    // make it a map, and if value for this string already exists, do nothing

  if (!dateMap[tmp_date_str]) {

    dateMap[tmp_date_str] = true;

  }

}

如果您需要将日期作为数组获取,那就去做


  var dates = Object.keys(dateMap)


查看完整回答
反对 回复 2023-04-27
?
largeQ

TA贡献2039条经验 获得超7个赞

您可以使用set来消除重复:


const mySet= new Set(["one", "two", "three", "one"]);


mySet.has("one") // true            

mySet.size === 3); // true

Set 构造函数可以采用一组用于初始化集合的项目。


查看完整回答
反对 回复 2023-04-27
?
BIG阳

TA贡献1859条经验 获得超6个赞

要检查并删除重复项,您可以使用angular.equals:


var newArray = [];

            angular.forEach($scope.dates, function(value, key) {

                var exists = false;


                angular.forEach(newArray, function(val2, key) {

                if(angular.equals(value.date, val2.date)){ exists = true }; 

                });


                if(exists == false && value.dates != "") { newArray.push(value); }

            });


            $scope.dates = newArray;


查看完整回答
反对 回复 2023-04-27
  • 3 回答
  • 0 关注
  • 130 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信