js判斷內容是否重覆

by cactus77kiki

HTML

<script>
tryforeach();
//比對email是否重複(若email有輸入且end_date為null)
function tryforeach(){	
  var data  = [{seq:1,email:'[email protected]',end_date:null},
  						{seq:2,email:'[email protected]',end_date:null},
              {seq:3,email:'[email protected]',end_date:null},
              {seq:4,email:'[email protected]',end_date:'2011/5/17'},
              {seq:5,email:'[email protected]',end_date:null}];
	//取出需要比對的清單
  var mailarry = [];
  if(data.length>1){
  	for (var i = 0; i < data.length; i++) {         	
    	var mailnull = chkIsNullorEmpty(data[i].email);
      var enddatenull = chkIsNullorEmpty(data[i].end_date);
      if ((!mailnull) && enddatenull) 
      	mailarry.push(data[i].email);                               
  	}
  }
  //比對
  var checkmail = chkRepeat(mailarry);
  var seq = "";
  var arry = [];
  if (!chkIsNullorEmpty(checkmail)) {
  	var attarry = JSON.parse(JSON.stringify(data));
    //找出輸入資料中email重複的清單
    var arfindmail = attarry.filter(function (item) {
    	var enddatenull = chkIsNullorEmpty(item.end_date);
    	return item.email == checkmail && enddatenull == true;
    });
    //取得清單內序號
    var forEachIt = arfindmail.forEach(function(item, index, array){  		  		
      arry.push(item.seq);
		});
    seq = arry.join('、');
    console.log(seq);
  }
    
}

function chkRepeat(param) {
    if (param.length > 1) {
        var single = param.join(",") + ",";
        for (var i = 0; i < param.length; i++) {
            if (single.replace(param[i] + ",", "").indexOf(param[i] + ",") > -1) {
                return param[i];
            }
        }
        return "";
    } else
        return "";
}
//true:empty.false:has value
function chkIsNullorEmpty(param) {    
    if (param) {
        if (typeof (param) == "object")
            return false;
        var trimpara = param.trim();
        if (trimpara)
            return false;
        else
            return true;
    }    
    else
        return true;    //為null/empty
}
</script>

JavaScript

/*
ref:https://wcc723.github.io/javascript/2017/06/29/es6-native-array/#Array-prototype-find
*/