Skip to content

Instantly share code, notes, and snippets.

@TheAlchemist64
Created March 15, 2018 00:31
Show Gist options
  • Save TheAlchemist64/4a60f8c5dcdb832994d1769f7bf9f26d to your computer and use it in GitHub Desktop.
Save TheAlchemist64/4a60f8c5dcdb832994d1769f7bf9f26d to your computer and use it in GitHub Desktop.
This is a recursive JS function that checks if a property is shared between N number of objects. Uses rest parameters.
export default function sharedProp(p: string, ...objects: object[]){
if(objects.length == 0){
return false;
}
else if(objects.length == 1){
return objects[0].hasOwnProperty(p);
}
return objects[0].hasOwnProperty(p) && sharedProp(p, ...objects.slice(1));
}
import sharedProp from './sharedProp.js';
let a = {a:1,b:2};
let b = {a:3,c:4};
let c = {a:5, d:6};
console.log(sharedProp('a'));
console.log(sharedProp('a', a));
console.log(sharedProp('a', b));
console.log(sharedProp('a', c));
console.log(sharedProp('a', a, b));
console.log(sharedProp('a', b, c));
console.log(sharedProp('a', a, c));
console.log(sharedProp('a', a, b, c));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment