【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が同じものがないかの重複チェックをしたいとき。
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("重複なし"); }
もっと良い方法ないかな...。