【发布时间】:2020-02-15 10:50:55
【问题描述】:
我对 jQuery 函数参数的使用感到困惑。见最后的问题...
数据 JSON - data.json 文件。
[{
"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"
}
]
完整的 HTML + JS 源代码
<!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>
我希望 SetFilter 函数中的“列”参数用于过滤器设置,例如
this.SetFilter = function(field, value) {
filter = {...filter,
field: value,
};
let _new = _.filter(_data, filter);
return _new;
}
不幸的是,列被误解了(对我说),并且过滤器设置为搜索名为“字段”而不是“性别”的列的数据。
我应该怎么做? 谢谢。
【问题讨论】:
标签: jquery function parameter-passing lodash