Hur filtrerar man JSON-data med Typescript/Javascript/Angular 4?
Jag har JSON-data som detta
data :[
{taskname:'chennai', id:'maa' }
{taskname:'mumbai', id:'bom' }
{taskname:'delhi', id:'del' }
....
....
....
{taskname:'salem', id:'che'}
{taskname:'bengaluru', id:'blr'}
{taskname:'chavvapet', id:'chv'}
}]
nu behöver jag filtrera dessa data och returnera matchande värden (precis som autokomplettering). Till exempel när jag får värdet CH, måste jag först kontrollera på ID och sedan på taskname. så returvärdet bör vara så här. måste ordna så att ID-matchning kommer överst och sedan taskname-matchning.
{taskname:'salem', id:'che'}
{taskname:'chavvapet', id:'chv'}
{taskname:'chennai', id:'maa'}
Om jag skulle få värdet CHE, då behöver jag returnera värdet på det här sättet
{taskname:'salem', id:'che' }
{taskname:'chennai', id:'maa' }
Kan någon snälla berätta för mig hur man använder filter med TypeScript?
Försökte några av dessa svar, men utan lycka.
Svar #1
Prova den här koden
const data = [
{taskname:'chennai', id:'maa',status:'Submitted'},
{taskname:'mumbai', id:'bom',status:'Resolved'},
{taskname:'delhi', id:'del',status:'Submitted'},
{taskname:'salem', id:'che',status:'In Progress'},
{taskname:'bengaluru',id:'blr',status:'Resolved'},
{taskname:'chavvapet',id:'chv',status:'Submitted'}
];
function filterByString(data, s) {
return data.filter(e => e.id.includes(s) || e.taskname.includes(s))
.sort((a,b) => a.id.includes(s) && !b.id.includes(s) ? -1 : b.id.includes(s) && !a.id.includes(s) ? 1 :0);
}
console.log(filterByString(data, "ch"));