TypeScript

by jacobwsmith

HTML

<div id="app"></div>

TypeScript

const users = [
{id: 1, name: "Joe", enabled: true, party: "D"},
{id: 2, name: "Bill", enabled: false, party: "D"},
{id: 3, name: "Donald", enabled: true, party: "R"},
{id: 4, name: "Sarah", enabled: false, party: "R"},
{id: 5, name: "Larry", enabled: false, party: "R"},
{id: 6, name: "Sam", enabled: true, party: "D"},
];

// filter and sort
const sortedFilteredList = users.filter(user => {
	return user.enabled
}).sort((a, b) => {
	if a.name < b.name {
  	return -1
  } else if (a.name > b.name){
  	return 1
  }
  return 0
})

console.log(sortedFilteredList)

// hash
const hash = users.reduce((acc, val) => {
	if (!val.enabled) {
  	return acc
  }
	if (acc[val.party] !== undefined) {
  	acc[val.party].push(val)
  } else {
  	acc[val.party] = [val]
  }
  return acc
}, {})

console.log(hash["D"])
console.log(hash["R"])
console.log("HERE")
/*
for (const [key, value] of Object.entries(object1)) {
  console.log(`${key}: ${value}`);
}
*/
const listHash = Object.entries(hash).reduce((acc, usersObj) => {
	console.log(usersObj)
	const users = usersObj[1].reduce(a, user => {
	    a.push(us)
	  }, [])
   acc.push(users)
  return acc
}, [])
console.log("listHash")
console.log(listHash)