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
*/