Reputation: 5862
I have the following array, and I need to check if the array any AvgWT
value
I tried following code.
var arry = [{"TimeSlot":"8:00 am","AssistedC":0,"Abandons":0,"AvgWT":12152},{"TimeSlot":"8:15 am","AssistedC":0,"Abandons":0,"AvgWT":13942},{"TimeSlot":"8:30 am","AssistedC":0,"Abandons":0,"AvgWT":0},{"TimeSlot":"8:45 am","AssistedC":0,"Abandons":0,"AvgWT":0},{"TimeSlot":"9:00 am","AssistedC":0,"Abandons":0,"AvgWT":0},{"TimeSlot":"9:15 am","AssistedC":0,"Abandons":0,"AvgWT":0},{"TimeSlot":"6:30 pm","AssistedC":0,"Abandons":0,"AvgWT":0},{"TimeSlot":"6:45 pm","AssistedC":0,"Abandons":0,"AvgWT":0},{"TimeSlot":"7:00 pm","AssistedC":0,"Abandons":0,"AvgWT":0}];
function isArrayValueGreater(arry) {
// var first = array[0];
var first = arry[0]["AvgWaitTime"];
return arry.every(function(element) {
if(element["AvgWaitTime"]> 15000 && element["AvgWaitTime"]< 20000){
return 50;
}else if(element["AvgWaitTime"]> 10000 && element["AvgWaitTime"]<15000){
return 100;
}
});
}
isValuesSameG = isArrayValueGreater(arry);
But its not working properly, What did I do wrong here?
Upvotes: 0
Views: 3916
Reputation: 2548
You could use a for
loop.
Try running the snippet below to see if the output is what you expected, because I made a few assumptions that weren't completely clear from your question:
Did you want to return a single value or a whole array? My code returns an array of the same length as arry
, with the output values stored in it.
What did you want it to return when AvgWT
was outside the ranges you stated? My code returns 0 for these.
I would be happy to amend the code if I misunderstood anything!
function isArrayValueGreater(arry) {
var returnValue = [];
for (var i = 0; i < arry.length; i++) {
var element = arry[i]["AvgWT"];
if (15000 < element && element < 20000) {
returnValue.push(50);
} else if (10000 < element && element < 15000) {
returnValue.push(100);
} else if (5000 < element && element < 10000) {
returnValue.push(150);
} else {
returnValue.push(0);
}
}
return returnValue;
}
var arry = [{
"TimeSlot": "8:00 am",
"AssistedC": 0,
"Abandons": 0,
"AvgWT": 12152
}, {
"TimeSlot": "8:15 am",
"AssistedC": 0,
"Abandons": 0,
"AvgWT": 13942
}, {
"TimeSlot": "8:30 am",
"AssistedC": 0,
"Abandons": 0,
"AvgWT": 0
}, {
"TimeSlot": "8:45 am",
"AssistedC": 0,
"Abandons": 0,
"AvgWT": 0
}, {
"TimeSlot": "9:00 am",
"AssistedC": 0,
"Abandons": 0,
"AvgWT": 0
}, {
"TimeSlot": "9:15 am",
"AssistedC": 0,
"Abandons": 0,
"AvgWT": 0
}, {
"TimeSlot": "6:30 pm",
"AssistedC": 0,
"Abandons": 0,
"AvgWT": 0
}, {
"TimeSlot": "6:45 pm",
"AssistedC": 0,
"Abandons": 0,
"AvgWT": 0
}, {
"TimeSlot": "7:00 pm",
"AssistedC": 0,
"Abandons": 0,
"AvgWT": 0
}];
console.log(isArrayValueGreater(arry))
Upvotes: 0
Reputation: 79
If I understood you correctly you can use .map() method. It will return new array with the same length includes that match checking and results. Here's the code
const arry = [{"TimeSlot":"8:00 am","AssistedC":0,"Abandons":0,"AvgWT":12152},{"TimeSlot":"8:15 am","AssistedC":0,"Abandons":0,"AvgWT":13942},{"TimeSlot":"8:30 am","AssistedC":0,"Abandons":0,"AvgWT":0},{"TimeSlot":"8:45 am","AssistedC":0,"Abandons":0,"AvgWT":0},{"TimeSlot":"9:00 am","AssistedC":0,"Abandons":0,"AvgWT":0},{"TimeSlot":"9:15 am","AssistedC":0,"Abandons":0,"AvgWT":0},{"TimeSlot":"6:30 pm","AssistedC":0,"Abandons":0,"AvgWT":0},{"TimeSlot":"6:45 pm","AssistedC":0,"Abandons":0,"AvgWT":0},{"TimeSlot":"7:00 pm","AssistedC":0,"Abandons":0,"AvgWT":0}];
function checkIfMatchCondition({ AvgWT: value }) {
if(value < 20000 && value > 15000)
return 50
else if(value < 15000 && value > 10000)
return 100
else if(value < 10000 && value > 5000)
return 150
return 0
}
const res = arry.map(checkIfMatchCondition);
console.log(res)
it can be improved by including index, or the whole object with additional property, but not enough details in the original post.
Upvotes: 2