JSFiddle - React, Tailwind, and code Playground
JavaScript
var objectlist = [];
var EN = {
messages: {
newButton: {
text: "New"
},
userSettings: {
language: {
selectYourLanguage: "Choose your preferred language",
fr: "French",
en: "English"
}
}
}
};
var FR = {
messages: {
newButton: {
text: "Nouveau"
},
userSettings: {
language: {
selectYourLanguage: "Choissez votre langage préféré:",
fr: "Français",
en: "Anglais"
}
}
}
};
objectlist.push(EN);
objectlist.push(FR);
function haveSameKeys(objectList){
for(var i = 0; i < objectList.length; i++)
{
for(var n = i+1; n < objectList.length; n++){
if( !(compare(objectList[i],objectList[n]) && compare(objectList[n],objectList[i]) ) ) return false;
}
}
return true;
}
function compare(a,b){
//all paths in b must be in a
for(var key in b){
if(a[key] == undefined) return false;
if(toString.call(b[key]) == "[object Array]" || toString.call(b[key]) == "[object Object]"){
if( !compare(a[key],b[key]) ) return false;
}
}
return true;
}
console.log(haveSameKeys(objectlist));
objectlist.push({});
console.log(haveSameKeys(objectlist));