連想配列に登録する時に重複チェックをしたいのですが、うまく行きません。
重複チェックが、意図通りに動かず、
以下のように、idの値が重複し登録されてしまいます。
{ id: '1000', language: 'ja' },
{ id: '1001', language: 'en' },
{ id: '1000', language: 'ja' }
挙動としては、
id:1000⇒id:1001までは意図通り登録されるのですが、
登録する直前の値のみ参照して重複チェックをしているため、id:1000⇒id:1001⇒id:1000とした場合、
id:1000が重複エラーにならずに登録されてしまう、
といった事になります。
id参照時に全ての値をチェックすれば良いのでしょうか、
どのようにするのか、分からず、
どのように処理を行えば良いか、教えて頂けないでしょうか。
以下、いま記述しているコードを添付します。
js
1var connectUser=[]; 2 3// 配列の行を取得 4arryCnt = (Object.keys(connectUser).length); 5 6// 配列内に何もなかったら連想配列に登録 7if (arryCnt === 0) { 8 connectUser.push({ id: id, language: language }) 9} else { 10 for (key in connectUser) { 11 arryId = (connectUser[arryCnt - 1].id); 12// IDが同じだった場合、配列に登録しない 13 if (arryId !== id) { 14 connectUser.push({ id: id, language: language }); 15 } else { 16 console.log('重複エラー'); 17 } 18 } 19}

回答3件
あなたの回答
tips
プレビュー