配列に日付が存在するかどうかを調べる際に問題が発生しています。JavaScriptループスルーして重複値を確認する
for(var i = 0; i< crisislist.length; i++){
hazecounter = 1;
if(crisislist[i].category == 1){
if(crisislist[i].date != crisislist[i+1].date) {
hazelabel.push(crisislist[i].date);
}else{
hazecounter++;
}
hazedata.push(hazecounter);
}
}
日付のサンプルデータは、次のとおりです。
["01-02-2017", "22-03-2017", "22-03-2017", "07-08-2017"]
そしてhazelabelの予想出力、hazedataは次のようになります。
hazelabel:[ "2017年1月2日"、「22 "-03-2017"、 "07-08-2017"] hazedata:[1,2,1]
上記のコードでは、配列の最後の要素までチェックして比較しようとすると、それは私にエラーメッセージをスローするセージ:
Uncaught TypeError: Cannot read property 'date' of undefined
私は配列の最後の要素に達し、そして私は、[I + 1] .dateをcrisislistを見つけるしようとすると、それが見つかったため、エラーメッセージが表示されなかったため、これがあると思います。
これを修正する方法はありますか?前もって感謝します!
私はそれを得る、より多くのコードを必要としません。 – aeid
'date'プロパティにアクセスする前に' crisislist [i] + 1'が 'undefined'でないかどうかチェックできませんか? – Teemoh
このように簡単に書くことができますhttp://stackoverflow.com/questions/40418507/javascript-filter-array-with-duplicate-dates jsfiddle demo https://jsfiddle.net/u6u80zsa/ – Sankara