知行合一

とか言ってみる

【JavaScript】配列 & フォームの重複チェック

◼︎配列の要素内での重複チェック

var arr = ['red','blue','green','yellow','red'];
var sortArr = arr.filter(
function (x, i, self) {
    return self.indexOf(x) === i && i !== self.lastIndexOf(x);
}
);
if(sortArr.length > 0){
	console.log("重複あり");
}else{
	console.log("重複なし");	
}

◼︎keyとvalueが同じものがないかの重複チェック
+ボタン押して追加できるフォームとかで、keyとvalueが同じものがないかの重複チェックをしたいとき。
f:id:komu11:20160308194107p:plain

var selectedNames = $('.form-control.name option:selected').map(function(){return $(this).val()});
var selectedValues = $('.form-control.value option:selected').map(function(){return $(this).val()});
var arr = [];

for(var i = 0; i < selectedNames.length; i++ ){
         arr.push(selectedNames[i]+selectedValues[i]);
}

var sortArr = arr.filter(
function (x, i, self) {
    return self.indexOf(x) === i && i !== self.lastIndexOf(x);
}
);

if(sortArr.length > 0){
	console.log("重複あり");
}else{
	console.log("重複なし");	
}

もっと良い方法ないかな...。