I'm stuck with jQuery function parameter usage. See question at the end...
Data JSON - data.json file.
[{
"id": 1,
"first_name": "Jeanette",
"last_name": "Penddreth",
"email": "jpenddreth0@census.gov",
"gender": "Female",
"ip_address": "26.58.193.2"
},
{
"id": 2,
"first_name": "Giavani",
"last_name": "Frediani",
"email": "gfrediani1@senate.gov",
"gender": "Male",
"ip_address": "229.179.4.212"
},
{
"id": 3,
"first_name": "Noell",
"last_name": "Bea",
"email": "nbea2@imageshack.us",
"gender": "Female",
"ip_address": "180.66.162.255"
},
{
"id": 4,
"first_name": "Willard",
"last_name": "Valek",
"email": "wvalek3@vk.com",
"gender": "Male",
"ip_address": "67.76.188.26"
}
]
Full HTML + JS source code
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.0.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.core.js"></script>
<meta charset="utf-8">
<title> Filter Test
</title>
</head>
<body>
<pre id="test"></pre>
</body>
<script>
var dataFiltered = function() {
var _data = [];
var filter = {};
this.ReadData = function() {
$.ajax({
url: "data.json",
dataType: "json",
type: 'get',
async: false,
// mimeType: "textPlain",
})
.done(function(data) {
_data = data;
});
}
this.ReadData();
this.SetFilter = function(field, value) {
filter = {...filter,
"gender": value,
};
let _new = _.filter(_data, filter);
return _new;
}
var txt = JSON.stringify(this.SetFilter('gender', 'Male'), undefined, 2);
$("#test").html(txt);
}
data = new dataFiltered();
</script>
</html>
I'd like that "column" parameter in SetFilter function to be used in filter settings, like
this.SetFilter = function(field, value) {
filter = {...filter,
field: value,
};
let _new = _.filter(_data, filter);
return _new;
}
Unfortunately, column is misinterpreted (speaking to me) and filter is set to search data for column named "field" and not "gender".
How am I suppose to do ? Thanks.