0

this is my file.

var tabledata = {
0: {Name: "Server1", PRPName: "NO_PRP", OperatingSystem: "Linux", SLA: "SILVER", Environment: "Accept"}
1: {Name: "Server2", PRPName: "services", OperatingSystem: "Linux", SLA: "SILVER", Environment:"Accept"}
2: {Name: "Server3", PRPName: "NO_PRP", OperatingSystem: "Windows", SLA: "GOLD", Environment: "Accept"}
3: {Name: "Server4", PRPName: "services", OperatingSystem: "Linux", SLA: "GOLD", Environment: "Accept"}
4: {Name: "Server5", PRPName: "NO_PRP", OperatingSystem: "Windows", SLA: "GOLD", Environment: "Accept"}
5: {Name: "Server6", PRPName: "sql", OperatingSystem: "Windows", SLA: "GOLD", Environment: "Accept"}
6: {Name: "Server7", PRPName: "services", OperatingSystem: "Linux", SLA: "GOLD", Environment: "Production"}
7: {Name: "Server8", PRPName: "NO_PRP", OperatingSystem: "Windows", SLA: "GOLD", Environment: "Production"}
8: {Name: "Server9", PRPName: "sql", OperatingSystem: "Windows", SLA: "GOLD", Environment: "Production"}
9: {Name: "Server10", PRPName: "NO_PRP", OperatingSystem: "Windows", SLA: "GOLD", Environment: "Production"}
10: {Name: "Server11", PRPName: "sql", OperatingSystem: "Windows", SLA: "GOLD", Environment: "Accept"}
};

i want to search for the PRPName "sql" and make a new array with only these entry in it.

the code i got so far is:

selectedValue = "sql"
    for (var i = 0; i < tabledata.length; i++) {
                results = [];
                var findItem = Object.values(tabledata).find(function(data){return data.PRPName.toLowerCase() === selectedValue.toLowerCase()});

              }
              console.log(findItem)
1

3 Answers 3

2

the way to do it is first to create an array from your object, then call filter on it

var tabledata = {
0: {Name: "Server1", PRPName: "NO_PRP", OperatingSystem: "Linux", SLA: "SILVER", Environment: "Accept"},
1: {Name: "Server2", PRPName: "services", OperatingSystem: "Linux", SLA: "SILVER", Environment:"Accept"},
2: {Name: "Server3", PRPName: "NO_PRP", OperatingSystem: "Windows", SLA: "GOLD", Environment: "Accept"},
3: {Name: "Server4", PRPName: "services", OperatingSystem: "Linux", SLA: "GOLD", Environment: "Accept"},
4: {Name: "Server5", PRPName: "NO_PRP", OperatingSystem: "Windows", SLA: "GOLD", Environment: "Accept"},
5: {Name: "Server6", PRPName: "sql", OperatingSystem: "Windows", SLA: "GOLD", Environment: "Accept"},
6: {Name: "Server7", PRPName: "services", OperatingSystem: "Linux", SLA: "GOLD", Environment: "Production"},
7: {Name: "Server8", PRPName: "NO_PRP", OperatingSystem: "Windows", SLA: "GOLD", Environment: "Production"},
8: {Name: "Server9", PRPName: "sql", OperatingSystem: "Windows", SLA: "GOLD", Environment: "Production"},
9: {Name: "Server10", PRPName: "NO_PRP", OperatingSystem: "Windows", SLA: "GOLD", Environment: "Production"},
10: {Name: "Server11", PRPName: "sql", OperatingSystem: "Windows", SLA: "GOLD", Environment: "Accept"}
};

let array = Object.values(tabledata)
let resultArray = array.filter(el => el.PRPName === "sql")
console.log(resultArray)

I used Object.values to get the array from your object because it is the one doing the intended transformation in this case

Sign up to request clarification or add additional context in comments.

Comments

1
var data;
for(i=0;i<11;i++){
    if(tabledata[i].PRPName=='sql')
    data=tabledata[i];
}
console.log(data);

1 Comment

This does not answer the question which was about keeping only the values where the PRPName is "sql". Your answer creates a new array with only the PRPNames inside. Also, maybe you should consider explaining a bit your code.
0
  var tabledata = [{"Name":"Server1","PRPName":"NO_PRP","OperatingSystem":"Linux","SLA":"SILVER","Environment":"Accept"},{"Name":"Server2","PRPName":"services","OperatingSystem":"Linux","SLA":"SILVER","Environment":"Accept"},{"Name":"Server3","PRPName":"NO_PRP","OperatingSystem":"Windows","SLA":"GOLD","Environment":"Accept"},{"Name":"Server4","PRPName":"services","OperatingSystem":"Linux","SLA":"GOLD","Environment":"Accept"},{"Name":"Server5","PRPName":"NO_PRP","OperatingSystem":"Windows","SLA":"GOLD","Environment":"Accept"},{"Name":"Server6","PRPName":"sql","OperatingSystem":"Windows","SLA":"GOLD","Environment":"Accept"},{"Name":"Server7","PRPName":"services","OperatingSystem":"Linux","SLA":"GOLD","Environment":"Production"},{"Name":"Server8","PRPName":"NO_PRP","OperatingSystem":"Windows","SLA":"GOLD","Environment":"Production"},{"Name":"Server9","PRPName":"sql","OperatingSystem":"Windows","SLA":"GOLD","Environment":"Production"},{"Name":"Server10","PRPName":"NO_PRP","OperatingSystem":"Windows","SLA":"GOLD","Environment":"Production"},{"Name":"Server11","PRPName":"sql","OperatingSystem":"Windows","SLA":"GOLD","Environment":"Accept"}];

  function searchData(json, fields, searchValue){
     return json.filter(d => d[fields] == searchValue);
  }

  // Use to Search function
  var searchResult = searchData(tabledata,"PRPName", "sql");
  console.log(searchResult);

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.