Java ではなくて JavaScript の処理です。(あまり書きたくない JavaScript です。様々な理由で書きます)
お題:以下のJSON で、unit001~3 のキーの値が全て同じであるか調査します。
const obj = { unit001: '0_1_2', unit002: '0_1_2', unit003: '0_1_2', unbinuty: '0_1_2', };
最初に、以下のサイトの記事を参考にさせて頂いて書いてみたもの。
https://www.nxworld.net/tips/js-array-filter-snippets.html
(ありがとうございます。)
let a = new Array(); Object.keys(obj).filter(function(d){ return d.match(/unit[0-9]+/); }) .forEach(function(key) { a.push(obj[key]); }); const getUniqueValues = ([...array]) => { return array.filter((value, index, self) => self.indexOf(value) === self.lastIndexOf(value)); }; if (getUniqueValues(a).length==0){ console.log("全て同じ"); }else{ console.log("全て同じでない"); }
もっと簡潔に、、
let aa = Object.keys(obj).filter(function(d){ return d.match(/unit[0-9]+/); }).map(function(key){ return obj[key]; }).filter((v, index, self)=> self.indexOf(v) === self.lastIndexOf(v)); if (aa.length==0){ console.log("全て同じ"); }else{ console.log("全て同じでない"); }