Reputation: 3074
I have a json array at smsPackageList
as like:
[{"name":"Basic","min_quantity":1250,"max_quantity":2500,"validity":"2020-07-02 15:58:18","rate":0.2},{"name":"Delux","min_quantity":2501,"max_quantity":5000,"validity":"2020-07-02 15:58:18","rate":0.19},{"name":"Classic","min_quantity":50001,"max_quantity":70000,"validity":"2020-07-02 16:03:54","rate":0.18},{"name":"Business","min_quantity":70001,"max_quantity":90000,"validity":"2020-07-02 16:03:54","rate":17},{"name":"Corporate","min_quantity":90001,"max_quantity":1000000,"validity":"2020-07-02 16:05:07","rate":0.15}]
I want to get the value of the max_quantity of the last row. I am trying as follows:
var n = smsPackageList.length;
var minSms = smsPackageList[0].min_quantity;
var maxSms = smsPackageList[n-1].min_quantity;
but console.log(minSms) and console.log(maxSms) produce undefined. Whats wrong in my approach, Any idea?
Upvotes: 0
Views: 93
Reputation: 14570
A good way to do this is use forEach
function on your array data and then .
and if condition on the name you are trying yo access
You can read more about forEach
here
var data = [{
"name": "Basic",
"min_quantity": 1250,
"max_quantity": 2500,
"validity": "2020-07-02 15:58:18",
"rate": 0.2
}, {
"name": "Delux",
"min_quantity": 2501,
"max_quantity": 5000,
"validity": "2020-07-02 15:58:18",
"rate": 0.19
}, {
"name": "Classic",
"min_quantity": 50001,
"max_quantity": 70000,
"validity": "2020-07-02 16:03:54",
"rate": 0.18
}, {
"name": "Business",
"min_quantity": 70001,
"max_quantity": 90000,
"validity": "2020-07-02 16:03:54",
"rate": 17
}, {
"name": "Corporate",
"min_quantity": 90001,
"max_quantity": 1000000,
"validity": "2020-07-02 16:05:07",
"rate": 0.15
}]
var min = document.getElementById('min_qt')
var max = document.getElementById('max_qt')
data.forEach(function(element){
if (element.name === 'Corporate') {
min.textContent = 'Min = '+element.min_quantity
max.textContent = 'Max = '+element.max_quantity
}
})
<div id="min_qt"></div>
<div id="max_qt"></div>
Upvotes: 1
Reputation: 3730
Try this..
var smsPackageList = [{"name":"Basic","min_quantity":1250,"max_quantity":2500,"validity":"2020-07-02 15:58:18","rate":0.2},{"name":"Delux","min_quantity":2501,"max_quantity":5000,"validity":"2020-07-02 15:58:18","rate":0.19},{"name":"Classic","min_quantity":50001,"max_quantity":70000,"validity":"2020-07-02 16:03:54","rate":0.18},{"name":"Business","min_quantity":70001,"max_quantity":90000,"validity":"2020-07-02 16:03:54","rate":17},{"name":"Corporate","min_quantity":90001,"max_quantity":1000000,"validity":"2020-07-02 16:05:07","rate":0.15}];
console.log("min_quantity : ", smsPackageList[smsPackageList.length - 1].min_quantity);
console.log("max_quantity : ", smsPackageList[smsPackageList.length - 1].max_quantity);
Upvotes: 1
Reputation: 131
var smsPackageList = [{"name":"Basic","min_quantity":1250,"max_quantity":2500,"validity":"2020-07-02 15:58:18","rate":0.2},{"name":"Delux","min_quantity":2501,"max_quantity":5000,"validity":"2020-07-02 15:58:18","rate":0.19},{"name":"Classic","min_quantity":50001,"max_quantity":70000,"validity":"2020-07-02 16:03:54","rate":0.18},{"name":"Business","min_quantity":70001,"max_quantity":90000,"validity":"2020-07-02 16:03:54","rate":17},{"name":"Corporate","min_quantity":90001,"max_quantity":1000000,"validity":"2020-07-02 16:05:07","rate":0.15}];
var n = smsPackageList.length;
var maxSms = smsPackageList[n-1].max_quantity;
console.log(maxSms);
Produce the correct result.
Upvotes: 1